2016-10-11 7 views
0

cronスクリプトにマウスの位置を取得し、私はCentOSに7に以下のコードを使用して、マウスの位置を取得することができています:Pythonは私がのpython3を使用しています

from Xlib import display 
data = display.Display().screen().root.query_pointer()._data 
data["root_x"], data["root_y"] 

しかし、私はcrontabのを使用してスクリプトを実行すると、それ Xlib.error.DisplayNameError:表示名が正しくない ""

Pythonとcronジョブを使用してマウスの位置を取得する方法はありますか?

+0

cronジョブを使用すると、まったく問題なく動作します。私は、ユーザーごとのsystemdジョブを見てみようと思います。 Systemdは、cronの機能のスーパーセットであるタイマータイプのスライスを実行できます。また、ユーザごとのシステムによって実行されるプロセスは通常、Xサーバにアクセスするための表示とセキュリティクッキーにアクセスできます(ディストリビューションに依存します)。 – spectras

答えて

0

pythonスクリプトの実行中に環境変数DISPLAYが正しく設定されていないためです。 Pythonスクリプトの先頭に次の行を追加してみてください。

+1

シングルユーザシステムでは、これはある程度正確に動作する可能性があります。一般的なケースでは、 ':0.0'が' crontab'が実行されているユーザによって所有されているか、 'DISPLAY'が存在するという保証はありません(ユーザは対話セッションでは全くログインしていないかもしれません) 。適切に保護されたシステムでは、対話セッション以外のプログラムは基本的に対話セッションの秘密の部分を混乱させることはできません。 – tripleee

関連する問題