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初期化スクリプト