터미널 창을 열도록 예약된 Cron 작업으로 인해 오류가 발생함

터미널 창을 열도록 예약된 Cron 작업으로 인해 오류가 발생함

저는 Amazon Linux를 실행하고 있습니다. 내 crontab 설정은 다음과 같습니다.

* * * * * mate-terminal -e run.sh >> output.log 2>&1

출력 파일에 다음 오류가 발생합니다. Failed to parse arguments: Cannot open display:

내 목표는 cron이 새 터미널 창을 열고 그 안에서 스크립트를 실행하도록 하는 것입니다.

나는 다음을 시도했습니다 :

  • 현재 사용자 및 sudo에서 cron 실행
  • 실행할 스크립트 삭제* * * * * mate-terminal >> output.log 2>&1

모든 시도에 대해 출력 파일에 동일한 오류가 발생합니다. 감사해요

답변1

터미널을 페어링하려면 터미널이 열려 있는 디스플레이를 알아야 합니다. 대부분의 경우 디스플레이 0을 사용하고 싶지만 다음을 사용해야 합니다.

echo $DISPLAY

터미널에서 원하는 디스플레이에 그런 다음 crontab 항목을 다음과 같이 설정하십시오.

* * * * * mate-terminal -display :0 -e run.sh >> output.log 2>&1

:0echo 출력으로 대체됩니다 .

답변2

진짜UI 화면에 크론 작업을 표시하고 싶으십니까? 아니면 그냥 도망치고 싶나요 run.sh?

--display예를 들어 작업이 터미널에 팝업되도록 하려면 옵션을 사용하여 해당 작업이 나타날 위치를 지정해야 합니다. 그러나 cron모니터에 액세스할 수도 있고 액세스할 수 없는 사용자로 실행되고 있으므로 이것만으로는 충분하지 않을 수 있습니다 .

단지 명령을 실행하고 싶다면 이렇게 할 수도 있습니다(에 따라 쉘을 변경해야 할 수도 있습니다 run.sh).

* * * * * /bin/sh -e /full/path/to/run.sh >> /full/path/to/output.log 2>&1

파일 및 스크립트의 전체 경로를 기록해 두십시오.

관련 정보