2011-08-03 10 views
1

私はSecureFXのコマンドラインツール(sfxcl.exe)Pythonのsubprocess.call

result = subprocess.call([securefx, '/NoPrompt', '/Q', '/RetryCount', retries, 
       '/RetryDelay', '1', '/Log', sfxLogFile, '/List', '/S', session]) 

を呼び出すためのPythonでスクリプトを書いた後、使用して.exeファイルにそれを変換していますpy2exe。

WinXPマシンでローカルにスケジュールを設定できますが、すべて正常に動作します。 Win2003環境で手動で実行すると、それも動作します。しかし、Win2003でWindowsタスクスケジューラを使用してスケジュールすると、スクリプトを実行し、実際にはsfxcl.exe(ログは一切ありません)を呼び出すことはありません。私はこれがなぜなのかかなり困惑しています...

Win2003サーバはPythonがインストールされておらず、私のWinXPは(私が開発したところで)実行しています。

私はPython 2.7.1を使用しています。

EDIT:これに答えがない場合は、スクリプトを一度実行して間隔を使用して再実行することを検討してください。その他のオプション?それは15〜20分ごとに実行する必要があります。

+0

私はそれを考え出したと思います。手動でexeを実行すると、私自身のログインが使用されていますが、スケジュールを設定するときには別のアカウントを使用しています。そのアカウントを自分の作品に切り替えるこれは、他のアカウントが同じsfxcl.exeを呼び出すバッチファイルを実行できることを考えると、非常に奇妙です。 – kouri

答えて

0

私は問題を見つけました。それは本当に馬鹿です。 手動で動作する場合は、タスクスケジューラで動作するはずです。

ここで、スケジューラで別のアカウントを使用していて、そのアカウントにSecureFXセッション/ configが設定されておらず、その部分だけが実行されていないということを忘れていました。

これはPythonの問題ではありません。

関連する問題