ホームページ > 運用・保守 > Linuxの運用と保守 > Systemd と Crontab を使用して Linux システムでシステムの自動起動を実現する方法

Systemd と Crontab を使用して Linux システムでシステムの自動起動を実現する方法

WBOY
リリース: 2023-09-26 11:57:23
オリジナル
961 人が閲覧しました

Systemd と Crontab を使用して Linux システムでシステムの自動起動を実現する方法

Systemd と Crontab を使用して Linux システムでシステムの自動起動を実現する方法

はじめに:
Linux システムでは、よく使用されるいくつかの機能を使用する必要があります。サービスまたはスクリプトがシステム自動起動に設定されているため、システムの再起動後に自動的に実行されます。この記事では、Systemd と Crontab という 2 つのツールを使用してシステムの自動起動を実現する方法と、具体的なコード例を紹介します。

1. Systemd の使用
Systemd は、Linux オペレーティング システムで一般的に使用されるシステムおよびサービス管理ツールです。システムのさまざまなサービスを簡単に管理および制御できる便利な構成インターフェイスを提供します。

  1. Systemd サービス ユニット ファイルの作成
    まず、自動的に開始するサービスの関連情報を定義する Systemd サービス ユニット ファイルを作成する必要があります。サービス名にちなんで、サフィックス .service を付けた新しいファイルを作成します (例: my_service.service)。以下は、サービス ユニット ファイルの例の内容です。
<div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>[Unit] Description=My Service After=network.target [Service] ExecStart=/path/to/your_script.sh Type=simple Restart=always User=root [Install] WantedBy=default.target</pre><div class="contentsignin">ログイン後にコピー</div></div><div class="contentsignin">ログイン後にコピー</div></div>

上記の例では、Description はサービスの名前を記述するために使用され、After# はサービスの名前を記述するために使用されます。 ## はサービスの起動の依存関係を指定します。 ExecStart はサービスの起動時に実行されるスクリプトまたはプログラムを指定します。 Type はサービスの種類を指定します。 Restart はサービスの開始後に指定しますサービスが停止します。自動的に再起動するかどうか。User は、サービスを実行するユーザーを指定します。

その中で、

WantedBy はリンク ターゲットであり、systemd がこのサービスを自動的に開始する .target を指定するために使用されます。デフォルトでは、default.target です。 。

    サービス ファイルをシステムの Systemd ディレクトリに配置します。
  1. 書き込んだサービス ユニット ファイルをシステムの Systemd サービス ディレクトリ (通常は
    /etc/systemd/system /#) に移動します。 ##。ターミナルで次のコマンドを実行して操作を完了します。
    sudo mv my_service.service /etc/systemd/system/
    ログイン後にコピー
サービスを開始し、自動開始を設定します
    上記の手順を完了した後、次のコマンドを使用して、サービスの開始と停止:

  1. sudo systemctl start my_service
    sudo systemctl stop my_service
    ログイン後にコピー
  2. システム上でサービスが自動的に開始されるように設定するには、次のコマンドを実行するだけです:
sudo systemctl enable my_service
ログイン後にコピー

このようにして、システムの再起動時に, サービスは自動的に開始されます。

2. Crontab の使用

Crontab は、Linux システムでタスクを定期的に実行するために使用されるツールです。 Crontab を使用して、システムの再起動後にタスクが自動的に実行されるように設定できます。


Crontab ファイルの編集
    次のコマンドを使用して、現在のユーザーの Crontab ファイルを編集します:

  1. crontab -e
    ログイン後にコピー
  2. 次のコンテンツをエディタに追加します:
@reboot /path/to/your_script.sh
ログイン後にコピー

このうち、

@reboot

はシステム起動後に実行することを意味し、/path/to/your_script.sh は実行するスクリプトまたはプログラムのパスです。

保存してエディターを終了します
    保存してエディターを終了すると、Crontab が自動的に有効になります。

  1. 検証設定
  2. 次のコマンドを使用して、現在のユーザーの Crontab 構成を表示します:

  3. crontab -l
    ログイン後にコピー
  4. 追加したばかりのコンテンツが表示されれば、構成は成功しています。

結論:

Systemd ツールと Crontab ツールを使用すると、Linux システムの再起動後の自動起動機能を簡単に実現できます。 Systemd を使用すると、システムのさまざまなサービスを管理し、簡単な構成ファイルを通じて自動起動を有効にすることができます。 Crontabを利用すると、タスクを定期的に実行する機能を実装できます。


コード例:

以下は、Systemd と Crontab を使用してシステムの自動起動機能を実装する方法を示すサンプル スクリプトです。


Systemd サービス ユニット ファイル

my_service.service

:<div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>[Unit] Description=My Service After=network.target [Service] ExecStart=/path/to/your_script.sh Type=simple Restart=always User=root [Install] WantedBy=default.target</pre><div class="contentsignin">ログイン後にコピー</div></div><div class="contentsignin">ログイン後にコピー</div></div>Crontab 構成ファイル:

@reboot /path/to/your_script.sh
ログイン後にコピー

上記は、Linux で Systemd と Crontab を使用する方法についてです。システム システムの自動起動を実装する方法と具体的なコード例。この記事があなたのお役に立てば幸いです。

以上がSystemd と Crontab を使用して Linux システムでシステムの自動起動を実現する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート