2011-01-07 2 views
2

再起動時にPythonプログラムを実行するコンピュータを作成する方法はありますか?一般的な解決策は良いですが、特に私は窓にあります。ローカルコンピュータをPythonから再起動

+1

ウィンドウはありませんが、Linuxではos.system( "reboot")と同じくらい簡単です。正しい特権を持っていると仮定します。 – Falmarri

+2

'os.system'はお勧めしません。廃止されました。 @Claudiu: 'サブプロセス 'を使う。 – user225312

+2

@A A:いいえ、それは廃止されておらず、このような些細なことに対してはうまくいきます。 –

答えて

10

これを行う一般的な方法はafaikではありません。

Windowsの場合、Win32 APIにアクセスする必要があります。ように:

import win32api 
    win32api.InitiateSystemShutdown() 

は、pywin32の一部です。

linux/os xでは、「再起動」コマンドを呼び出すのが最も簡単だと思います。

import os 
os.system('reboot now') 

などです。 。

は(downvotersへの注意:os.system()ないテキストがサブプロセスモジュールは、新しいプロセスを生成し、その結果を取得するためのより強力な機能を提供」で推奨されていません。そのモジュールを使用すると、この機能を使用することが好ましいですこのような単純なケースでは、結果の取得やマルチプロセッシングに興味がない場合は、os.system()はうまく動作します)。

+0

私は外部モジュール(win32api)を使ってマシンをリブートしましたが、wmiで直接リブートすることはできませんでした。 os.systemの使用について私は気にしません。 – Anders

+1

@アンダー:「WMIC.exeは、Windows XP Professional、Windows Server 2003、Windows VistaおよびWindows Server 2008でのみ使用できます。そう、いいえ。悪いアイデア。 –

+0

これは、Windows 7などの他のシステムでも利用できます.Windows XP Home用のSPに含まれているかどうかはわかりません。 – Anders

7

サブプロセスを使用してshutdownコマンドを呼び出してみませんか?

3

あなたは使用してWindowsシステムを再起動することができます:os.system("shutdown -t 0 -r -f")

例:

import os 
print "REBOOTING" 
os.system("shutdown -t 0 -r -f") 

変更をシャットダウンするまでの秒数を変更するには、-tの前の数字。

関連する問題