Jetson & 머신러닝
Jetson Xavier 안전 종료 버튼 실행(3)
아크리엑터
2024. 7. 1. 03:03
반응형
updated 2024.7.7 아래 것이 더 나아서 업데이트 합니다. 아래 글은 다른 용도로 사용할 수있습니다.
https://makejarvis.tistory.com/171
------------------------------------------------------------------------------------------------------------------------
1. 아래 파일을 만든다.
$ sudo vi /etc/init.d/safe_shutdown
#!/bin/sh
#
# cd /etc/init.d
# sudo vi safe_shutdown
#
# sudo chmod 755 safe_shutdown
#
case "$1" in
start)
eval "cd /home/user_id/bot/safe_shutdown/"
echo "Starting safe_shutdown....."
eval "./run_safe_shutdown.sh &"
;;
stop)
echo "safe_shutdown stopped..."
eval "pkill -9 -f safe_shutdown"
;;
*)
echo "Usage: /etc/init.d/safe_shutdown {start|stop}"
exit 1
;;
esac
exit 0
2. bot/safe_shutdown/폴더 밑에 아래의 파일을 만들었다.
$ vi run_safe_shutdown.sh
!/bin/sh -e
/usr/bin/python3 /home/user_id/bot/safe_shutdown/safe_shutdown.py
$ vi safe_shutdown.py
import Jetson.GPIO as GPIO
import time
import os
print("-----------------------------------------")
print(" Starting SafeShutdown Process")
print("-----------------------------------------")
pin = 23
GPIO.setmode(GPIO.BOARD)
GPIO.setup(pin, GPIO.IN)
time.sleep(60)
try:
while True:
if GPIO.input(pin) == True:
print("[!] safe shutdown button pressed...")
os.system("sudo shutdown now")
time.sleep(1)
except KeyboardInterrupt:
GPIO.cleanup()
3. 잘 실행되는지를 시험해보자.
$ sudo ./safe_shutdown start
Starting safe_shutdown.....
-----------------------------------------
Starting SafeShutdown Process
-----------------------------------------
$ sudo ./safe_shutdown stop
safe_shutdown stopped...
Killed
4. 상시 실행되게 하는 것은 아래 명령으로..
$ sudo update-rc.d safe_shutdown defaults
이제 23번 핀으로 전원Off 기능이 작동되도록 하였다. 최초 부팅 후 60초 지난 시점 이후 부터 키입력을 검사하도록 한다.
반응형