Linux で systemdサービス使用 カンニングペーパー
起動時に特定のプログラムを実行するために、systemdサービスを使用することができます。以下の手順を実行して、systemdサービスを作成し、systemctlに登録します。
システムの起動時に実行したいプログラムを実行するシェルスクリプトを作成します。例えば、/home/user/startup_script.shというファイルを作成するとします。
systemdサービスファイルを作成します。以下のコマンドを使用して、/etc/systemd/system/my-service.service という名前の新しいファイルを作成します。
sudo vi /etc/systemd/system/my-service.service
my-service.service ファイルに以下の内容を追加します。
[Unit]
Description=My Service
After=network.target
[Service]
Type=simple
ExecStart=/home/user/startup_script.sh
[Install]
WantedBy=multi-user.target
この例では、ServiceとしてType=simpleを指定し、ExecStartで実行したいシェルスクリプトのパスを指定しています。Descriptionフィールドには、サービスの説明を追加することができます。Afterフィールドは、システムの起動時に、network.targetが完全に読み込まれるまで待つことを指定しています。
サービスを有効化します。
systemctl enable my-service.service
システムを再起動して、サービスが起動することを確認します。
reboot
サービスを手動で起動するには、以下のコマンドを使用します。
systemctl start my-service.service
サービスを停止するには、以下のコマンドを使用します。
sudo systemctl stop my-service.service
以上の手順で、システムの起動時に特定のプログラムを実行するsystemdサービスが作成され、systemctlに登録されます。
systemctlコマンドを使用して現在実行中のサービスの状態を列挙するには、以下のコマンドを実行します。
systemctl list-units --type=service
このコマンドは、現在実行中のすべてのサービスの状態を表示します。サービス名、状態、および説明が含まれています。また、サービスが有効かどうか、およびブート時に自動的に起動するかどうかも示されます。