##やりたいこと
サービスファイルを作成して、シャットダウンボタンの追加をしたいです。
参考先: http://hammmm.hatenablog.com/entry/2016/11/14/231337
##今の状況
shutdown.pyを実行すると、シャットダウン動作はできます。
この状態で、電源をOFFし、ラズパイを起動させます。
(サービスファイルによりシャットダウン動作が働いているはずなので)シャットダウンボタンを押してもシャットダウンしてくれません。
サービスファイルのStatusを確認すると、次の結果が表示されます。
"fail"になっている訳ではありませんが、"activating (auto-restart)となっています。
html
1pi@raspberrypi:~ $ sudo systemctl status shutdownbuttond 2● shutdownbuttond.service - Shutdown/Reboot raspberry pi by GPIO button input 3 Loaded: loaded (/usr/lib/systemd/system/shutdownbuttond.service; enabled; ven 4 Active: activating (auto-restart) (Result: exit-code) since Tue 2019-10-15 13 5 Process: 877 ExecStart=/home/pi/dev/3_Shutdown.py (code=exited, status=127) 6 Main PID: 877 (code=exited, status=127) 7 810月 15 13:16:28 raspberrypi systemd[1]: shutdownbuttond.service: Unit entered f a 910月 15 13:16:28 raspberrypi s
システムのログを確認すると、次の結果が表示されます。
"そのようなファイルやディレクトリはありません"のコメントがよく分かりません。
html
1Oct 15 15:34:55 raspberrypi systemd[1]: shutdown.service: Main process exited, code=exited, status=203/EXEC 2Oct 15 15:34:55 raspberrypi systemd[1]: shutdown.service: Unit entered failed state. 3Oct 15 15:34:55 raspberrypi systemd[1]: shutdown.service: Failed with result 'exit-code'. 4Oct 15 15:35:05 raspberrypi systemd[1]: shutdown.service: Service hold-off time over, scheduling restart. 5Oct 15 15:35:05 raspberrypi systemd[1]: Stopped Shutdown/Reboot raspberry pi by GPIO button input. 6Oct 15 15:35:05 raspberrypi systemd[1]: Started Shutdown/Reboot raspberry pi by GPIO button input. 7Oct 15 15:35:05 raspberrypi systemd[1240]: shutdown.service: Failed at step EXEC spawning /home/pi/dev/Shutdown.py: No such file or directory 8Oct 15 15:35:05 raspberrypi systemd[1]: shutdown.service: Main process exited, code=exited, status=203/EXEC 9Oct 15 15:35:05 raspberrypi systemd[1]: shutdown.service: Unit entered failed state. 10Oct 15 15:35:05 raspberrypi systemd[1]: shutdown.service: Failed with result 'exit-code'. 11Oct 15 15:35:16 raspberrypi systemd[1]: shutdown.service: Service hold-off time over, scheduling restart. 12Oct 15 15:35:16 raspberrypi systemd[1]: Stopped Shutdown/Reboot raspberry pi by GPIO button input. 13Oct 15 15:35:16 raspberrypi systemd[1]: Started Shutdown/Reboot raspberry pi by GPIO button input.
##サービスファイル・コード
プログラムコード
html
1#!/usr/bin/env python 2 3import RPi.GPIO as GPIO 4import os, time 5 6GPIO.setmode(GPIO.BCM) 7 8# GPIO18 : reset button 9GPIO.setup(18, GPIO.IN, pull_up_down = GPIO.PUD_UP) 10# GPIO23 : shutdown button 11GPIO.setup(23, GPIO.IN, pull_up_down = GPIO.PUD_UP) 12 13def shutdown(channel): 14 os.system("sudo shutdown -h now") 15 16def reboot(channel): 17 os.system("sudo reboot") 18 19GPIO.add_event_detect(23, GPIO.FALLING, callback = shutdown, bouncetime = 2000) 20GPIO.add_event_detect(18, GPIO.FALLING, callback = reboot, bouncetime = 2000) 21 22while 1: 23 time.sleep(100)
サービスファイル
html
1[Unit] 2Description=Shutdown/Reboot raspberry pi by GPIO button input 3Wants=network.target 4 5[Service] 6ExecStart=/home/pi/dev/Shutdown.py 7Restart=on-failure 8RestartSec=10s 9 10[Install] 11WantedBy=multi-user.target
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/15 09:37
2019/10/16 02:05
2019/10/16 02:12
2019/10/17 00:11
2019/10/17 00:32
2019/10/17 01:18