2011-09-27 23 views
13

私はボタンを持つプログラムを開発しています。Pythonから端末を開く

sudo apt-get update 

私が使用している:押されたとき、私は走るターミナルを開きたい。これは、正常に動作します

os.system("gnome-terminal -e 'sudo apt-get update'") 

。唯一の問題は、アップデートが終了すると、ターミナルが閉じることです。 端末を開いたままにするにはどうすればよいですか?

+0

この記事を参照してください:http://stackoverflow.com/questions/3512055/avoid-gnome-terminal-close-after-script-execution – rodion

答えて

11

あなたはこれを行うことができます:

os.system("gnome-terminal -e 'bash -c \"sudo apt-get update; exec bash\"'") 
+1

とkonsole(KDEを使用している場合)とおそらく同じですか? – mika29

+0

os.system( "gnome-terminal -e 'sudo apt-get update'")。これがうまくいくときに余分な 'bash'が必要な理由は不明です。 – mastash3ff

+1

@ mastash3ff - 質問を読んでください。 "更新が終了すると、端末は終了する"。余分なbashコールはそれを開いたままにします。 – jterrace

4

は、いくつかの選択肢があります:

  • は、コマンドラインの末尾に; read -p "Hit ENTER to exit"を追加します。
  • ; sleep 10をコマンドラインの最後に追加して少し待ってから終了してください。
  • gnome端末の設定:

    [編集]メニューの[現在のプロファイル]をクリックします。 「タイトルとコマンド」タブをクリックします。ここには、「コマンドが終了したとき」という設定があります。それを「端末を開いたままにする」に変更します。新しいプロファイルを作成することもできます。

あなたが削除することができます
0

-e

os.system("gnome-terminal 'sudo apt-get update'") 
+1

これを動作させることができませんでした。上記のように-eオプションを使用しなければなりませんでした。 – mastash3ff

関連する問題