cronでgnome-session-saveを使用する方法は?

cronでgnome-session-saveを使用する方法は?

gnome-session-save --killcrontabを介してコマンドを実行しようとしています。私はコマンドを使用しましたsudo crontab -e。ファイルは次のようになります。

PATH=/usr/bin
00 00 * * * gnome-session-save --kill

コマンドが期待どおりに実行されませんでした。/var/log/syslogしかし、正常に実行されたことを示しています。

コマンドは/usr/bin/gnome-session-save --killコマンド()へのフルパスも試しましたが、運がありませんでした。

Ubuntu 10.04LTS

ベストアンサー1

まず、sudo crontab -eこの目的で使用しないでください。これにより、root ユーザーの crontab ファイルが編集されます。保存されたgnomeセッションがあなたに属するように、ユーザーcrontabでそれを実行する必要があります。 sudoを削除して実行しますcrontab -e。必要に応じて、cron.allowcrontabファイルをユーザーとして所有できるように、ファイルに自分自身を追加します。 (また、ルートのcrontabを再編集してこのエントリを削除することを忘れないでください。)

次に、正しい変数に接続しないと、cronはgnomeユーティリティなどの機能を実行できません$DISPLAY。 cronが子に渡す環境はログインシェルほど完全ではなく、グラフィカルログイン環境では実行されないため接続されません。次の点を考慮してください。複数のグラフィック環境を実行できます。システムスクリプトはどのスクリプトを操作したいのかをどうやって知ることができますか?しかし、実際にはそうではありません。どのモニターで実行されているかを特定し、それをコマンドに渡す必要があります。

結局、ここはとにかく間違った場所のようです。一体なぜ定期的にセッションを終了したいのですか?その瞬間、ユーザーが行ったすべての操作は破壊されます。また、cronはユーザーがログインしているかどうかに関係なく実行されるため、常にアクション可能なエントリがない可能性があります。

おすすめ記事