2017-08-23 3 views
1

私はroot権限でcrontabで始まるジョブを持っています。このジョブはしばらくするとポップアップメッセージが表示されるはずです。仕事はPythonで行われ、MessageBoxツールキットを使用します。ルートジョブからユーザーに表示を送信する

roitでは、仕事がうまくいき、5分後にメッセージボックスが表示されます。 問題は、私がユーザーとしてログインすると、タスクリストでジョブが実行されているのを見ることができますが、ポップアップが機能しないことです(ジョブの表示はユーザーのルートではないためです)。

このジョブを変更して、現在のliginユーザーの表示を使用する方法を見つけることができません。

これを変更してユーザーにポップアップが表示される方法はありますか?

ありがとうございました。

+0

DISPLAY変数を設定しようとしましたか? – piarston

+0

あなたの仕事を達成しようとしましたか?何を試しましたか? [最小限で検証可能な完全な例](https://stackoverflow.com/help/mcve)を投稿できますか? – bracco23

+0

@ bracco23。 cronで実行されるpythonジョブには、5分後にポップアップするメッセージボックスがあります。 rootとしてログインすると動作します。 user1としてログインすると、ジョブは実行中ですが、メッセージボックスは表示されません。だから私は自分の仕事を達成しようとしているが、どのように知っているのか分からない。 – ZoRo

答えて

2

DISPLAY(環境変数)が設定されていない環境でcronジョブが実行されるため、MessageBoxがポップアップしません。それは他のcronジョブと混乱しません、あなたの自信を持っている場合、あなたが最初の行としてDISPLAY=:0追加することができ、また

#!/usr/bin/env bash 
export DISPLAY=':0' 
python /path/to/your/python/program.sh 

:代わりにcronが直接あなたのpythonを実行したの、あなたはそれがその周りに単純なラッパーを実行することができますあなたのcrontabの。