내 크론 작업이 작동하지 않는 이유는 무엇입니까?

내 크론 작업이 작동하지 않는 이유는 무엇입니까?

나는 cron 작업과 설정하지 않아도 되는 항목에 관한 20개의 질문을 읽었으며 모든 작업을 수행했습니다. 이것을 중복 항목으로 태그하지 마십시오. 그래서 내 스크립트는 다음과 같습니다.

#!/bin/bash

openRTSP_process_ids=(`/bin/ps -fu $USER | /bin/grep "openRTSP" | /bin/grep -v "grep" | /bin/grep -v $0 | /usr/bin/awk '{print $2}'`)
echo $openRTSP_process_ids
for i in "${openRTSP_process_ids[@]}"
do
    if [ -n "$i" ]; then
        echo $i
        kill -1 $i
    fi
done

내 crontab은 다음과 같습니다.

#SHELL=/bin/bash
PATH=/home/username/bin:/home/username/.local/bin:/opt/OpenPrinting-Gutenprint/sbin:/opt/OpenPrinting-Gutenprint/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap$

43,41,26,21,16,12,1,7,48,46,33,49,54,57,59,4,9,14,19,24,27,29,32,34,39,44 * * * * bash /home/username/Documents/stop_openRTSP &>> /home/username/stop.log
50,55,0,5,10,15,20,25,30,35,40,45 * * * * /home/username/Documents/start_openRTSP

표준 sh 쉘로 시도했지만 bash 쉘은 모두 작동하지 않습니다. &>> bash 리디렉션 및 2>&1 sh 리디렉션을 사용하여 출력을 로그 파일 봇으로 리디렉션하려고 시도했지만 로그 파일이 비어 있습니다. 나는 여러 가지를 시도했지만 프로세스가 결코 종료되지 않았지만 명령줄을 통해 수행할 때 프로세스가 종료되었습니다.

또한 경로와 셸을 추가하는 것 외에도 전체 경로를 사용하여 모든 명령을 작성했습니다. ps aux | grep openRTPS를 실행하고 열려 있는 프로세스를 살펴보세요. 명령줄에서 스크립트를 실행하면 프로세스가 닫히지만 cron 작업을 통해 프로세스는 계속 열려 있습니다.

일부 버전에서는 처음에 터치 기능이 있어서 이 특정 스크립트가 실행되지만 모든 명령이 실행되는 것은 아니라는 것을 알고 있습니다.

답변1

작업이나 스크립트가 예상대로 작동하지 않는 경우 매우 유용한 문제 해결 팁 중 하나는 set -x스크립트 상단에 추가하고 출력을 검사하여 스크립트가 원하는 대로 작동하는지 확인하는 것입니다.생각하다하고 있어요. 현장에서 입증되지 않은 런타임 환경에 대해 몇 가지 가정이나 추정을 하고 있을 가능성이 높습니다.

관련 정보