crontabの追加は機能しません

crontabの追加は機能しません

ターミナルを介してパッドを介してcrontabを追加する方法に多くの答えを見てみると、どこでも1つのオプションしか見つかりませんでした。

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

実行中で、私が受け取るものは

>

それはすべてです。一部のコンテンツを入力するように求められます。

2番目のオプションは

(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最終的にはそれを確認します。


2つの形式について:

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

次のように書く必要があります。

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

(追加セミコロンに注意してください)

()との違いは、{}前者はサブシェルを生成し、後者は同じシェルコンテキストでコマンドを実行することです。したがって、変数の割り当ては1つの形式でのみ存在し、他の形式では存在しません。

おすすめ記事