라즈베리파이에서 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 & 명령을 사용하여 재실행 해줍니다.

간단하지만 꽤 유용하게 사용중입니다.

 

+ Recent posts