Systemdで起動時にShellScriptを実行する方法

Ubuntu
スポンサーリンク


Ubuntuで独自に作成したShellScriptをサーバ起動時に自動実行させたい場合の設定です。

Ubuntuの環境はこちらです。

$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.5 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.5 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
スポンサーリンク

ShellScriptの作成

sample.shを作成します。※ユーザ直下に作成したとします

$ vim sample.sh

単純にテキストを出力します。

#!/bin/sh
echo hogehoge >> /var/log/hoge.log

実行権限を付与

作成したShellScriptに実行権限を付与します。

$ chmod +x ./sample.sh

serviceファイルの作成

systemdに作成したShellScriptをサービスとして登録します。

$ sudo vim /etc/systemd/system/hogehoge.service
[Unit]
Description = hogehoge

[Service]
ExecStart = /home/ユーザ名/sample.sh
Restart = always
Type = simple

[Install]
WantedBy = multi-user.target

ExecStartに先ほど作成したスクリプトをフルパスで指定します。

自動起動の設定

こちらのコマンドでサーバ起動時にPowerShellが自動で実行されるように設定します。

$ sudo systemctl enable hogehoge.service