-
Notifications
You must be signed in to change notification settings - Fork 1
systemdを用いた自動起動方法
cagalliorb edited this page Sep 6, 2017
·
5 revisions
まず以下のコマンドでrover.serviceという名前のファイルを作る.(/etcじゃなくても/libでも可能で,roverという名前は自由)
sudo nano /etc/systemd/system/rover.service
nanoで開いたら、以下のように記入する.
今回は/home/pi/cansat/end2end.shを実行したい時の例である.
[Unit]
Description = Rover Auto Start
[Service]
WorkingDirectory=/home/pi/cansat
ExecStart=/home/pi/cansat/end2end.sh
Type=simple
Restart=Always
[Install]
WantedBy=multi-user.target
その後、シェルスクリプトとサービスに実行権限を与える以下のコマンドを打つ.
sudo chmod 644 /etc/systemd/system/rover.service
sudo chmod 0755 /home/pi/cansat/end2end.sh
つぎにサービスのupdateなどをかねて次のコマンドを打つ.
sudo systemctl daemon-reload
sudo systemctl enable rover.service
そして
systemctl list-unit-files --type=service
で自分のサービスがenabledになっているかを確認. そうするとsudo reboot nowでrebootすると、再起動時にプログラムが自動で立ち上がる。
ちなみに
sudo systemctl status rover.service
で現在のstatusが見られる.
自動起動させた後止めるには,
sudo systemctl stop rover
とする. ただし,再起動後も動かないようにするには
sudo systemctl disable rover.service
で再起動すると次回はサービスが自動起動しない。