에서와 부팅시에 시작되는 프로세스를 종료캔트 내가 (에서는 /etc/init.d/boot.local) 부팅시 시작 fooinit.rt 프로세스를 데몬
다음boot.local 파일
...
/bin/fooinit.rt &
...
입니다
나는 fooinit.rt를 죽이기 위해 job에서 주문 목록을 만든다. 그는 C 코드
에 트리거와 나는 fooinit.rt 이것들을 pidof -9 타이머가 만료되면 직장에서
#!/bin/sh
proc_file="/tmp/gdg_list$$"
ps -ef | grep $USER > $proc_file
echo "Stop script is invoked!!"
suff=".rt"
pid=`fgrep "$suff" $proc_file | awk '{print $2}'`
echo "pid is '$pid'"
rm $proc_file
'이 죽일 스크립트를 중지 여기 를 기록 죽일 (에서) 정지 스크립트를 작성한다 -9 pid '(of fooinit.rt) 명령은 fooinit.rt 프로세스를 종료 할 수 없습니다 !!
인쇄 된 pid 번호와 "Stop script is inviled !!"문장을 확인했습니다. Ok입니다! 여기
는 C 코드에서 작업 명령 "에서"입니다 반면에
...
case 708: /* There is a trigger signal here*/
{
result = APP_RES_PRG_OK;
system("echo '/sbin/stop' | at now + 1 min");
}
...
, 그것은 수동으로 fooinit.rt을 시작하는 경우 제대로 작동 (나중에 1 분 후에 정지 scriptis가 호출되는 것을 확인) 쉘에서 일반적인 명령으로. (/etc/init.d/boot.local이 아님). 그래서 죽일 -9 일과 종료 fooinit.rt 과정
당신은 어떤 생각이 왜 죽일 -9 foo.rt 프로세스를 종료 할 수가에서는 /etc/init.d/boot.local
나는 prob를 풀었습니다. "또 다른 잠재적 인 문제는 $ USER의 설정입니다. 올바른지 확인 했습니까?" 그것은 빙고 !! !! 고마워. – roll
ps -ef에 작업을 배포 할 때 내 c 코드 프로세스 (in)가 root 사용자로 나타나지만 stop 스크립트 (echo "User is '$ USER'">> $ proc_file)에이 파일을 추가 할 때 아무 것도 인쇄하지 않습니다. 다음은 결과입니다. -> User is '' – roll
프로세스를 시작하는 경우 fooinit.rt, invoke.rt (작업이 배포 된 위치)에서 수동으로 쉘에서 출력이 -> User는 'root'입니다. 그리고 정지 스크립트가 제대로 작동합니다! – roll