GNU/Linux >> Linux の 問題 >  >> Linux

LinuxでSystemDサービスとしてシェルスクリプトを実行する方法

Systemdは、Linuxオペレーティングシステム用の一連のシステムコンポーネントを提供するソフトウェアアプリケーションです。これは、ブートシーケンスを初期化する最初のサービスです。これは常にpid1で実行されます。これは、Linuxオペレーティングシステムでのシステムおよびアプリケーションサービスの管理にも役立ちます。

また、systemdサービスとして任意のカスタムスクリプトを実行することもできます。これは、スクリプトがシステムの起動時に開始するのに役立ちます。これは、起動時にのみ実行する必要があるスクリプト、または常に実行する必要があるスクリプトを実行するのに役立ちます。

前のチュートリアルでは、Systemdを使用してPythonスクリプトを実行する手順を説明しました。このチュートリアルでは、Systemdサービスとしてシェルスクリプトを実行する方法について説明します。

ステップ1-シェルスクリプトを作成する

まず、システムが実行されるまで常に実行するサンプルシェルスクリプトを作成します。 bashwhileループを使用して無限に実行します。

sudo nano /usr/bin/script.sh 

次のサンプルスクリプトを追加します。

Shell
1234567 #!/ 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サービスとして構成するのに役立ちました。


Linux
  1. LinuxでSystemdサービスを作成する方法

  2. Linux –シャットダウン直前にsystemdでスクリプトを実行する方法は?

  3. バックグラウンドでシェルスクリプトを実行する方法は?

  1. シェルからPythonスクリプトを実行する方法

  2. Linux で Python スクリプトをサービスまたはデーモンのように実行する方法

  3. 起動時にシェルスクリプトを実行する方法

  1. バックグラウンドでスクリプトを実行する方法 (linux openwrt)?

  2. systemd でのシャットダウン時に、他のすべての前にスクリプトを実行するにはどうすればよいですか?

  3. シャットダウン直前にsystemdでスクリプトを実行する方法は?