Systemdは、Linuxオペレーティングシステム用の一連のシステムコンポーネントを提供するソフトウェアアプリケーションです。これは、ブートシーケンスを初期化する最初のサービスです。これは常にpid1で実行されます。これは、Linuxオペレーティングシステムでのシステムおよびアプリケーションサービスの管理にも役立ちます。
また、systemdサービスとして任意のカスタムスクリプトを実行することもできます。これは、スクリプトがシステムの起動時に開始するのに役立ちます。これは、起動時にのみ実行する必要があるスクリプト、または常に実行する必要があるスクリプトを実行するのに役立ちます。
前のチュートリアルでは、Systemdを使用してPythonスクリプトを実行する手順を説明しました。このチュートリアルでは、Systemdサービスとしてシェルスクリプトを実行する方法について説明します。
ステップ1-シェルスクリプトを作成する
まず、システムが実行されるまで常に実行するサンプルシェルスクリプトを作成します。 bashwhileループを使用して無限に実行します。
sudo nano /usr/bin/script.sh
次のサンプルスクリプトを追加します。
Shell1234567 | #!/ bin / bash whiletruedo//ステートメントはここに表示されますsleep10done |
スクリプトを保存し、実行権限を設定します。
sudo chmod +x /usr/bin/script.sh
システムの起動時にスクリプトを1回実行するために、無限ループは必要ありません。上記のスクリプトの代わりに、シェルスクリプトを使用してSystemdサービスとして実行できます。
ステップ2–SystemDファイルを作成する
次に、システム上にsystemdのサービスファイルを作成します。このファイルには.service
が必要です 拡張機能があり、/lib/systemd/system/
の下に保存されます ディレクトリ
sudo nano /lib/systemd/system/shellscript.service
次に、次のコンテンツを追加し、スクリプトのファイル名と場所を更新します。サービスの説明を変更することもできます。
[Unit] Description=My Shell Script [Service] ExecStart=/usr/bin/script.sh [Install] WantedBy=multi-user.target
ファイルを保存して閉じます。
ステップ3–新しいサービスを有効にする
システムサービスがサービスに追加されました。 systemctlデーモンをリロードして、新しいファイルを読み取りましょう。 .serviceファイルに変更を加えた後は、毎回このデーモンをリロードする必要があります。
sudo systemctl daemon-reload
次に、システムの起動時にサービスを開始できるようにします。また、次のコマンドを使用してサービスを開始します。
sudo systemctl enable shellscript.service
sudo systemctl start shellscript.service
最後に、スクリプトがsystemdサービスとして稼働していることを確認します。
sudo systemctl status shellscript.service
出力は次のようになります:
結論
このチュートリアルは、シェルスクリプトをsystemdサービスとして構成するのに役立ちました。