라즈베리파이에서 rc.local를 이용해 자동실행등록했던 프로그램이 어떠한 오류로 꺼지는 경우가 생겼습니다.
해당 프로그램이 꺼졌을때 그것을 판단하여 자동으로 다시 켜주는 기능이 있었으면 좋겠다 생각하여 간단히 쉘스크립트를 이용하여 시도해 보았습니다.
#!/bin/bash
while [ 1 ]
do
pid=`ps -ef | grep "uart_receive" | grep -v 'grep' | awk '{print $2}'`
if [ -z $pid ];then
if [ $count -lt 10 ];then
echo "uart_receive start"
sudo /home/pi/./uart_receive.py &
sudo home/pi/./time.sh &
fi
sleep 2
done
실행중인 프로세스 이름중에 "uart_receive"가 포함되어있는 프로세스가 있는지를 찾습니다.(2초마다)
해당 프로세스가 검색되지 않으면 sudo /home/pi/./uart_receive.py & 명령을 사용하여 재실행 해줍니다.
간단하지만 꽤 유용하게 사용중입니다.
'[리눅스]' 카테고리의 다른 글
[리눅스] 매핑된 gpio의 상태 할당시 주어진 이름 목록 확인 (0) | 2019.07.15 |
---|---|
u-boot에서 실행될때마다 적용할 명령 등록 (0) | 2019.06.26 |
리눅스 기가랜 관련 문제 해결을 위한 디바이스 트리 수정하기 (0) | 2019.06.25 |
[리눅스] 부팅후 자동실행 등록하기 rc.local (0) | 2019.05.18 |
[리눅스] MAKE파일 만들기 (1) | 2016.11.02 |