crontab 추가가 작동하지 않습니다

crontab 추가가 작동하지 않습니다

터미널을 통해 패드를 통해 crontab을 추가하는 방법에 대한 많은 답변을 살펴본 결과 어디에서나 단 하나의 옵션만 발견했습니다.

{crontab -l; echo "1 * * * * /usr/bin/firefox" } | crontab -

실행 중이고 내가 받는 것은

>

그게 다야. 일부 콘텐츠를 입력하라는 메시지가 표시됩니다.

두 번째 옵션은

(crontab -l; echo "1 * * * * /usr/bin/firefox" ) | crontab -

이것은 cron을 추가하는 것처럼 보이지만 매분 /var/spool/cron/crontabs/root열리지 않고 firefox실제로 전혀 열리지 않습니다.

/var/spool/cron/crontabs/root대부분의 답변에서 가장 많이 읽은 내용은 직접 편집 하거나 제출 하면 안된다는 것입니다 /etc/crontab.

이것이 내 시스템이 지원하지 않는 것입니까?

의 출력은 uname -a내 시스템에 대한 다음 설명을 제공합니다.

Linux earth 4.9.0-kali4-amd64 #1 SMP Debian 4.9.30-2kali1 (2017-06-22) x86_64 GNU/Linux

/var/spool/mail/mail편집: 다음 메시지 로그는 내 로그에서 자주 반복됩니다.

From [email protected] Sun Jul 09 16:01:12 2017 
Return-path: < [email protected] > 
Envelope-to: [email protected] 
Delivery-date: Sun, 09 Jul 2017 16:01:12 +0530 
Received: from root by earth with local (Exim 4.89)   
    (envelope-from <[email protected]>)  
    id 1dU9UY-0001Ry-3A   
    for [email protected]; Sun, 09 Jul 2017 16:01:06 +0530 
From: [email protected] (Cron Daemon) 
To: [email protected] 
Subject: Cron <root@earth> /usr/bin/firefox 
MIME-Version: 1.0 
Content-Type: text/plain; charset=UTF-8 
Content-Transfer-Encoding: 8bit X-Cron-Env: < SHELL=/bin/sh > 
X-Cron-Env: < HOME=/root > 
X-Cron-Env: < PATH=/usr/bin:/bin > 
X-Cron-Env: < LOGNAME=root > Message-Id: < E1dU9UY-0001Ry-3A@earth > 
Date: Sun, 09 Jul 2017 16:01:06 +0530

Error: GDK_BACKEND does not match available displays

답변1

두 번째 시도는 정확할 가능성이 높지만 예상은 틀렸습니다.

부분별로 살펴보겠습니다.

crontab -l

현재 사용자의 crontab에 있는 모든 기존 항목을 나열합니다. 이것

echo "1 * * * * /usr/bin/firefox"

라인을 다시 인쇄하면 됩니다. 그런 다음 두 명령이 하위 쉘에 결합되고 공통 출력이 다음으로 파이프됩니다.

crontab -

따라서 표준 입력을 통해 전달된 내용(이 경우 이전 crontab과 새 항목)이 crontab을 덮어씁니다.

말씀하신 대로 crontab 파일에 추가됩니다. 그리고 cron 데몬이 실행 중이라고 가정하면 명령은 1분마다 실행됩니다.

그렇다면 매분마다 Firefox 창을 보지 않겠습니까? - conrjob은 cron 데몬 아래의 다른 쉘에서 실행되기 때문에 X 세션에 액세스할 수 없으므로 Firefox는 실패하고 다음과 같은 내용을 보고합니다.

(firefox:22376): Gtk-WARNING **: Locale not supported by C library.
    Using the fallback 'C' locale.
Error: GDK_BACKEND does not match available displays

그리고 종료합니다. 이 오류를 어떻게 볼 수 있나요? 일반적으로 cron 데몬은 이메일을 보내려고 시도하고 /var/spool/mail결국에는 이를 확인합니다.


두 가지 형태에 관해서 :

{ crontab -l; echo "1 * * * * /usr/bin/firefox" } | crontab -

다음과 같이 작성해야 합니다.

{ crontab -l; echo "1 * * * * /usr/bin/firefox"; } | crontab -

(추가 세미콜론에 유의하세요)

()과의 차이점은 {}전자는 하위 쉘을 생성하는 반면 후자는 동일한 쉘 컨텍스트에서 명령을 실행한다는 것입니다. 따라서 변수 할당은 한 가지 형식으로만 존재하고 다른 형식으로는 존재하지 않습니다.

답변2

cron 작업에서 시작 하려고 하면 firefox-esr동일한 오류가 발생합니다 .

DISPLAY그러나 cron 파일을 올바르게 설정하면 도움이 됩니다.:

* * * * * pi export DISPLAY=:0 && /usr/bin/firefox-esr &

DISPLAY( 수학을 통해 실제 숫자를 알아 내세요 echo $DISPLAY.)

관련 정보