crontab을 통해 X11 애플리케이션(Firefox) 실행

crontab을 통해 X11 애플리케이션(Firefox) 실행

나는 매분마다 Firefox를 여는 crontab을 작성하고 싶습니다(단순히 테스트하기 위해, 의미가 없다는 것을 압니다). 내 문제는 crontab이 활성화되어 있어도 아무 일도 일어나지 않는다는 것입니다. 내 crontab은 다음과 같습니다.

SHELL=/bin/bash
PATH=~/bin:/usr/bin:bin
* * * * * export DISPLAY=:0.0 xhost localuser /usr/bin/firefox

왜 작동하지 않는지 아시나요?

답변1

export DISPLAY=:0.0 xhost localuser /usr/bin/firefox

위의 cron 명령을 보면 왜 작동하지 않는지 알 수 있습니다. 명령 의 사용법은 export다음과 같습니다.

export name[=word]...

POSIX 셸에서 다음 단어의 나머지 부분은 export DISPLAY=:0.0실행될 명령이 아닌 환경으로 내보내야 하는 다른 셸 변수로 처리됩니다. POSIX(2018년 7호판)에서는 다음을 지정합니다.이름해야한다

이식 가능한 문자 집합의 밑줄, 숫자 및 알파벳만으로 구성된 단어입니다.

즉, 쉘 변수 이름은 문자를 포함할 수 없으므로 내보낼 변수 이름 목록에 /포함하려고 하면 또는 같은 메시지와 함께 오류가 발생합니다 ./usr/bin/firefoxnot a valid identifierbad variable name


또한 xhost명령이 잘못 사용되었습니다. 자체적으로 실행하여 xhost사용자 계정을 허용된 사용자로 추가해야 하는지 확인하세요. 이 작업은 한 번만 실행해야 하며 cron으로 예약하면 안 됩니다.


프로그램이 X 디스플레이 서버에 연결하는 것을 방지하는 다른 메커니즘이 없는 한, 위의 줄은 다음과 같이 간단히 대체될 수 있습니다.

DISPLAY=:0.0
* * * * * /usr/bin/firefox

매분마다 새로운 Firefox 창이 시작됩니다. 또한 환경 변수를 지정할 필요가 없습니다 SHELL. 실행 파일의 전체 경로를 지정하므로 변수도 firefox설정할 필요가 없습니다 PATH.


또한보십시오:POSIX 사양export

관련 정보