概要
- 常駐させたいプロセスがあり、毎回手作業で実行すると、実行することを忘れてしまうことがある
- 上記を防ぐために、プロセスを deamon 化する
環境
- OS: ubuntu 20.04
- CPU: intel(R) Core(TM) i9-11900H
- RAM: DDR4 32GB
参考
- systemd を利用してプロセスをデーモン化する
- shellとかコマンドとかをサービス化(デーモン化)するやつ
- systemdでデーモン化を簡単に行う
- Ubuntuで起動時に自動でShellScriptを実行する方法
echoコマンドをdeamon化する
serviceの作成
- echo_hogehoge.seviceを/etc/systemd/systemの直下におく
1
2
cd /etc/systemd/system
sudo vim echo_hogehoge.sh
- echo_hogehoge.shの内容
- シェバンを入れないと、Serviceの起動に失敗する
1
2
3
#!/bin/sh
ping localhost > ~/test.log
- shell scriptの権限を変更する
- 実行権限が無いと、servriceから実行できない
1
chmod +x echo_hogehoge.sh
- 実行権限が無いと、servriceから実行できない
- 次の内容にする
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[Unit]
Description=echo hogehoge
After=syslog.target network.target
[Service]
User=user名
Type=simple
# スクリプトファイルはfull pathで指定する
ExecStart=/home/user名/script/echo_hogehoge.sh
Restart=always
[Install]
WantedBy=multi-user.target
serviceの起動
- 作成したServiceを有効化する
1
2
3
sudo systemctl enable echo_hogehoge.service
sudo systemctl start echo_hogehoge.service
serviceの状態確認
- statusコマンドで確認する
1
systemctl status echo_hogehoge.service