우분투 17.04를 실행 중일 때 bash
스크립트를 감독하는 서비스가 필요합니다. 여기서 세 개의 프로그램 (여기에는 더미 스크립트 foo_script
으로 대체 됨)이 끝없이 반복되는 루프로 실행됩니다 가능한 프로그램 충돌).리눅스 서비스가 예기치 않게 중단되었습니다
주 스크립트 인 foo_main.sh
은 명령 줄에서 호출하면 올바르게 작동합니다. 그러나 내가 설정하려고하는 서비스가 곧 중단됩니다.
파일 foo_script.sh
:
#!/bin/bash
echo "FooScripting "$1 >> "foo.d/"$1
파일 loop.sh
:
#!/bin/bash
nLoop=0
prgName=$1
prgArg=$2
echo "<< START of "${prgName} ${prgArg}" loop >>"
while :
do
let nLoop=nLoop+1
echo "<< looping "${prgName} ${prgArg}" >>" ${nLoop}
"./"${prgName} ${prgArg}
sleep 1
done
echo "<< END of "${prgName} ${prgArg}" loop >>"
파일 foo_main.sh
:
#!/bin/bash
echo "foo_main start in "${PWD}
./loop.sh "foo_script.sh" "fb" &
sleep 2
./loop.sh "foo_script.sh" "gc" &
./loop.sh "foo_script.sh" "gb" &
echo "foo_main end"
파일 /etc/systemd/system/food.service
:
start
OFC 후) 모든
sudo systemctl status food.service
에서 얻을 무엇 12,396,654,611,246,473,285,463,210
거의 같은 출력
●의 food.service - 푸 데몬
로드 :로드 (은/etc/systemd/시스템/음식 .서비스; 장애인; 벤더 프리셋 : 활성화)
활성 : 시작 푸 데몬 : 비활성 (죽은)
구월 28 14시 54분 30초 존 호스트는 [1] systemd. foo_main 스크립트/홈/존/빈에서 시작
9월 28일 14시 54분 30초 존 호스트 foo_main.sh [7376 : 9월 28일 14시 54분 30초 존 호스트 foo_main.sh [7376]
] foo_script.sh의 FB 루프 < < START >>
구월 28 14시 54분 30초 존 호스트 foo_main.sh [7376] < < 반복 foo_script.sh의 FB >> 1
구월 28 14:54:31 존 호스트 foo_main.sh [7376] : < < 루핑 foo_script.sh fb >> 2
,451,515,구월 28 14시 54분 32초 존 호스트 foo_main.sh [7376] foo_main 스크립트 단부
구월 28 15시 24분 30초 존 호스트 foo_main.sh [7921]의 foo_script < < START. SH GB 루프 >>
구월 28 15시 24분 30초 존 호스트 foo_main.sh [7921] foo_script.sh의 GC 루프 < < START >>
구월 28 15시 24분 30초 john- 호스트 foo_main.sh [7921] : < < 루핑 foo_script.sh gb >> 1
Sep 28 15:24:30 존 호스트 foo_main.sh [7921] : < < 루핑 foo_script.sh gc >> 1
이 도움이 될 : [? 어떻게 bash는 스크립트를 디버깅 (http://unix.stackexchange.com/q/155551/74329) – Cyrus
당신은 완전히 잘못된 일을 인용하고 있습니다. ''foo.d/$ 1 ''이 쓰여질지라도''foo.d/"$ 1"이 아니라''foo.d/"$ 1"' – chepner