systemdを実行しているDebianストレッチを持っています(デフォルトでインストールされています)。cron経由で起動時に2行のbashスクリプトを開始したいと思います。
echo something > file.txt
xfce4-terminal [...] --command="watch [....]" 2>&1 &
スクリプトは手動で起動すると正常に機能します。ウィンドウが開き、「watch」コマンドが起動します。私は最初の行を使用して、起動時に起動されるかどうかを確認します(一種のスタンプのように)。
私はrootユーザーと非rootで試しました。crontab -eとviを使用してcronを編集しました(export VISUAL = "vi")
@reboot /path/to/script/script.sh
起動時にスクリプトが起動しますが(file.txtを確認しました)、xfce4-terminalで開いたウィンドウがありません。そして...「Systemd」は、起動時にスクリプトを起動するだけの大きなBertaのように見えます。
何か案が?みなさん、ありがとう!
しばらく考えてみてください。コンピューターを再起動して、コーヒーを飲みに行きます。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を実行していないため、機能するかどうかはわかりません)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加