Shell 스 크 립 트 는 프로 세 스 의 자동 당 김 을 실현 합 니 다.
주요 사고방식: 프로 세 스 이름 에 따라 찾기 (물론 두 개의 이름 이 같은 프로 세 스 가 있 으 면 안 됩 니 다). ps + grep 로 프로 세 스 가 존재 하 는 지 확인 하고, 현재 스 크 립 트 의 프로 세 스 를 grep - v 로 필터 해 야 합 니 다. (이 프로 세 스 의 경로 가 이 스 크 립 트 에 매개 변수 로 전달 되 기 때 문 입 니 다.) 그리고 grep 명령 으로 생 성 된 하위 프로 세 스 를 필터 해 야 합 니 다.(셸 에서 명령 을 실행 할 때 fork 를 호출 하여 하위 프로 세 스 를 만 든 다음 exec 로 프로 세 스 의 이미 지 를 바 꿉 니 다)
프로 세 스 를 다시 시작 할 때 실행 가능 한 파일 을 직접 시작 합 니 다: $process path &
셸 스 크 립 트 를 시작 하려 면: sh $process path &
프로 세 스 를 시작 한 후에 프로 세 스 가 성공 적 으로 시작 되 었 는 지 다시 확인 할 수 있 습 니 다.
마지막 으로 crontab 를 추가 하면 스 크 립 트 를 정시 에 실행 할 수 있 습 니 다. 프로 세 스 가 실행 되 지 않 은 것 을 발견 하면 프로 세 스 를 시작 합 니 다. 그러면 프로 세 스 가 자동 으로 끌 어 올 립 니 다.
crontab - l\# 작업 보기
crontab - e\# 작업 편집
crontab - r\# 사용자 의 crontab 내용 삭제
스 크 립 트 를 1 분 에 한 번 씩 실행 합 니 다:
*/1 * * * */home/xxx/proc_monitor.sh /home/xxx/demo &
다음은 자동 으로 당 기 는 스 크 립 트 입 니 다:
#!/bin/bash
# name:proc_monitor.sh
# : , kill,
# ,
script_name="proc_monitor.sh"
#
# @param $1:
function check_file()
{
if [ $# -ne 1 ]; then
echo " , : check_file /dir/file"
return 1;
fi
if [ ! -f $1 ];then
echo " $1 "
return 1
fi
}
# return 0: 1:
# @param $1:
function monitor_process()
{
if [ $# -ne 1 ]; then
echo " , :monitor_process /dir/file"
return 1
fi
process_exists=$(ps -ef | grep $1 | grep -v grep | grep -v $script_name | wc -l)
if [ $process_exists -eq 0 ]; then
return 0
else
return 1
fi
}
#
# @param $1: function start_monitor()
{
if [ $# -ne 1 ]; then
echo " , :start_monitor /dir/file"
return 1
fi
process_path=$1
process_name=$(echo $process_path | awk -F / '{print $NF}')
monitor_process $process_name
if [ $? -eq 0 ]; then
echo " :$process_path"
echo " "
$process_path &
#sh $process_path &
monitor_process $process_name
if [ $? -eq 1 ]; then
echo " "
else
echo " "
fi
else
echo " "
fi
}
#
# @param $1:
if [ $# -ne 1 ]; then
echo " , :ecdata_proc_monitor /dir/file"
exit 1
fi
check_file $1
if [ $? -ne 0 ]; then
exit 1
fi
start_monitor $1
다음으로 전송:https://www.cnblogs.com/-Lei/archive/2013/04/21/3033788.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.