Linux でアプリの起動をスケジュールするにはどうすればよいですか?

Linux でアプリの起動をスケジュールするにはどうすればよいですか?

Firefox や gnome-calculator などのグラフィカル アプリケーションを特定の時間に起動するにはどうすればよいでしょうか。 はatこれには機能しません。つまり、echo "firefox" | at nowFirefox は起動しません。Cron は機能するかもしれませんが、繰り返しタスクが設定されます。このようなアプリを、指定した時間または今から設定した時間後に、at と同じ機能で起動するように設定する方法はありますか。

答え1

Kubuntu 22.04 LTS、X11、KDE。必要なのは「手動で」保持することだけですDISPLAY

一般に、atいくつかの変数を除いて、呼び出し時の環境が保持されます。DISPLAYは例外の 1 つです。man 1 at詳細については、を参照してください。 変数がないとecho "firefox" | at now動作しません。

保持する方法は次のとおりですDISPLAY:

echo "DISPLAY='$DISPLAY' firefox" | at now

コマンドは、$DISPLAY; を含むものに展開されると中断されます'が、実際にはそうはなりません。通常、展開された文字列は または:0程度です。

後でスケジュールすることもできますが、デスクトップからログアウトしないでください。仮定するにまだ存在しないディスプレイを指定しfirefox、その時間になる前にディスプレイを作成すると、動作します。ただし、このシナリオはテストしていません。

関連情報