起動時にcronを使用してxfce4端末を実行する

起動時にcronを使用してxfce4端末を実行する

Debian Stretchがあり、systemdを実行しています(デフォルトでインストールされています)。 cronで起動時に2行bashスクリプトを起動したいと思います。

echo something > file.txt 

xfce4-terminal  [...] --command="watch [....]" 2>&1 & 

スクリプトは手動で起動するとうまく動作します。ウィンドウを開き、「watch」コマンドを起動します。最初の行を使用して、起動時に起動することを確認します(一種のスタンプのように)。

rootユーザーとroot以外のユーザーの両方に試してみました。 crontab -eとviを使用してcronを編集しました(VISUAL = "vi"をエクスポート)。

@reboot /path/to/script/script.sh

起動時にスクリプトが起動しますが(file.txtを確認しました)、xfce4-terminalで開いたウィンドウは存在しません。そして... "Systemd"は起動時にスクリプトを起動するので、大きなBertaのように見えます。

どんなアイデアがありますか?みんなありがとうございます!

ベストアンサー1

考えてみてください。コンピュータを再起動してコーヒーを飲みに行きます。 cronジョブは実行しようとしますが、端末をどこで開く必要がありますか?まだログインしていません...

CronジョブはインタラクティブGUI環境と同じ環境では実行されないため、通常はcronなどに必要な環境変数の設定に注意せず、コマンドプロンプトで一般的なコマンドを入力してcronジョブをスケジュールしません。ジョブを実行する必要があります。

この場合、一部の環境変数の問題ではなく、cronジョブの実行中にユーザーがログインしていない可能性があります。グラフィックターミナルが動作するにはデスクトップ環境が必要です。


私の考えでは、デスクトップ環境を起動するたびに(再起動時ではなくログイン時に)コマンドを開始したいと思います。

XFCEでこれを行うには、設定 - >セッションと起動 - >アプリケーションの自動起動に移動してクリックするか、拡張子を持つAddファイルを作成します(このディレクトリがない可能性があるため、作成する必要があるかもしれません)。.desktop~/.config/autostart/

ファイルは次のようにする必要があります

[Desktop Entry]
Version=1.0
Name=Script
Type=Application
Exec=/home/user/bin/script.sh
Terminal=false
StartupNotify=false

/home/user/bin/script.sh欲しいものを実行するスクリプトはありますか?

(上記の内容はからのものです。XFCEフォーラムトピックX11を実行しなくても動作するかどうかわかりません)

また関連:Xfce初期化スクリプト

おすすめ記事