0

現在、デスクトップの背景を1分ごとに変更するスクリプトを作成していますが、出力をファイルにパイプすると、次のようになります。

** (process:22375): WARNING **: Command line `dbus-launch --autolaunch=134db3df26c562acad27e9cf00000009 --binary-syntax --close-stderr' exited with non-zero exit status 1: Autolaunch error: X11 initialization failed.\n

Pythonスクリプトは次のとおりです。

#!/usr/bin/env python

import os, random

def main():

    files =  os.listdir("/home/benkaiser/scripts/XKCD_IMAGES");
    nameOfImg = random.choice(files)

    os.system("gsettings set org.gnome.desktop.background picture-uri file:///home/benkaiser/scripts/XKCD_IMAGES/" + nameOfImg)

    print "Finished Fine!";

    return 0

if __name__ == '__main__':
    main()

また、crontabコマンドは次のとおりです。** * * */home/benkaiser/scripts/changeDesktop.py

ファイルが実行可能であることをすでに確認しているので、問題はありません。エラーが発生するos.systemコールに関係しているようです

4

3 に答える 3

1

問題は、gsettings実行する画面を知る必要があることです。ターミナルで実行すると、ターミナルが表示されている画面で実行されますが、crontab で実行すると、コンテキストに画面がありません。

gsettings コマンドまたは環境変数にスイッチを追加して表示を指定することで、これを実行できる場合があります。これは、表示が推測できない状況で動作するように gsettings が作成されたかどうかによって異なります。

于 2012-08-29T07:20:18.330 に答える
0

Crontabは通常Xサーバーについて知りません。試してみてください。

* * * * * DISPLAY=:0 /home/benkaiser/scripts/changeDesktop.py

それがうまくいくかどうかはわかりませんが。

于 2012-08-29T07:19:05.027 に答える
0

セットアップについてはわかりませんが、追加するとDISPLAY=:0.0うまくいきました。Ubuntu 12.04、gnome3、デュアル モニター

crontabにこのエントリがあります

* * * * * DISPLAY=:0.0 /home/german/change-bg.py
于 2012-08-29T11:44:08.883 に答える