백그라운드에서 실행되도록 작업 예약(작업 예약에는 at 사용)

백그라운드에서 실행되도록 작업 예약(작업 예약에는 at 사용)

나중에 지정된 시간에 백그라운드에서 작업이 실행되도록 요청할 수 있습니까?

이것이 내가 지금까지 가지고 있는 것입니다

 nohup nice MY_PROGRAM > foo.out 2> foo.err < /dev/null | at 05:23 PM Mon & echo $!

그러나 실제로 존재하지 않는 (18454)와 같은 프로세스 ID를 다시 표시합니다.

ps 

작업에 할당된 프로세스 ID입니다.

 18453 pts/2    00:00:00 MY_PROGRAM

PID-1 = PID인가요? 왜 이런 일이 발생하는지 아시나요? 아니면 내 명령에 문제가 있는 걸까요?

답변1

at표준 입력에서 실행할 명령을 읽습니다.

실행 명령을 보내지 않았습니다 at. 명령을 실행하고 명령의 출력을 으로 보내고 있습니다 at.

다음과 같이 시도해 보세요:

echo 'nohup nice MY_PROGRAM > foo.out 2> foo.err < /dev/null' | at 05:23

echo명령은 문자열을 인쇄하여 'nohup nice MY_PROGRAM'|전달합니다 at.

왜 그것을 사용하는지 모르겠지만 아마도 직업이 있기 nohup때문에 필요할 것 입니다.at대화형이 아님.

PS 명령을 문자열로 전달 '하려면 작은따옴표( ) 를 사용해야 합니다 .echo

관련 정보