2011-11-15 2 views
1

파이썬 subprocess.Popen()는

import subprocess 
child = subprocess.Popen("python ./myprog.py ", shell=True) 
print "Hello" 

아래의 파이썬 코드를 통해 이동하십시오

Hello 
Hello,myprog 

내 문제는 자식 프로세스가 부모 프로세스와 병렬로 실행되기 시작하는지 아니면 위의 출력에서 ​​알 수 있듯이 자식 프로세스가 부모 프로세스를 끝내기를 기다리는 지 여부입니다.

+0

비슷한 게시물에 대한 답변을 만들었습니다. http://stackoverflow.com/questions/89228/how-to-call-external-command-in-python/2251026#2251026 – newtover

답변

3

필자는 Unix fork() 또는 Windows와 동등한 방식으로 다른 프로세스로 실행된다는 것을 알고 있습니다.

그리고 다음이있다 : http://docs.python.org/library/subprocess.html#subprocess.Popen.wait

이 관찰은 :

>>> p = Popen(["ls", "-hal"]);sleep (5);print "Word" 
total 12M 
drwxr-xr-x 51 ishpeck users 4.0K Nov 14 19:58 . 
drwxr-xr-x 7 root root 4.0K Jun 25 04:30 .. 
drwxr-xr-x 2 ishpeck users 4.0K Jun 6 00:46 abcde.b00b030d 
drwx------ 2 ishpeck users 4.0K Nov 13 13:57 .AbiSuite 
drwx------ 3 ishpeck users 4.0K May 29 20:14 .adobe 
-rw-r--r-- 1 ishpeck archive 55 Jun 29 07:18 .apvlvinfo 
drwxr-xr-x 2 ishpeck archive 4.0K Jul 28 23:16 .archive 
-rw-r--r-- 1 ishpeck archive 180 Nov 14 18:23 .aspell.en.prepl 
-rw-r--r-- 1 ishpeck archive 250 Nov 14 18:23 .aspell.en.pws 
-rw-r--r-- 1 ishpeck users 152 Jun 6 00:45 .asunder 
-rw------- 1 ishpeck users 9.0K Nov 14 20:06 .bash_history 
-rw-r--r-- 1 ishpeck users 2.2K Oct 22 08:54 .bashrc 
drwx------ 3 ishpeck users 4.0K Sep 28 08:23 .bitcoin 
drwx------ 3 ishpeck archive 4.0K Jul 30 22:44 .Broken Rules 
drwx------ 10 ishpeck users 4.0K Aug 16 16:37 .cache 
drwx------ 2 ishpeck users 4.0K May 30 03:42 .cmus 
drwxr-xr-x 11 ishpeck users 4.0K Nov 6 16:42 .codelite 
drwx------ 23 ishpeck users 4.0K Sep 22 00:18 .config 
-rw-r--r-- 1 ishpeck users 2.6K Jun 5 17:21 .conkyrc 
drwx------ 3 ishpeck users 4.0K May 28 08:29 .dbus 
drwx------ 13 ishpeck users 4.0K Sep 27 21:25 dl 
drwxr-xr-x 29 ishpeck users 4.0K Nov 12 00:00 docs 
-rw-r--r-- 1 ishpeck archive 1000 Nov 11 06:26 .emacs 
-rw-r--r-- 1 ishpeck archive 1000 Nov 11 06:25 .emacs~ 
-rw-r--r-- 1 ishpeck archive 511 Nov 10 11:14 .emacs-backup 
drwx------ 6 ishpeck users 4.0K Nov 10 11:22 .emacs.d 
drwxr-xr-x 3 ishpeck archive 4.0K Jun 17 04:26 .Eterm 
-rw-r--r-- 1 ishpeck users 105 Nov 14 20:00 .fehbg 
-rw------- 1 ishpeck archive 9 Nov 13 22:10 .fetchmail.pid 
-rw------- 1 ishpeck archive 323 Oct 30 08:10 .fetchmailrc 
drwxr-xr-x 2 ishpeck users 4.0K Nov 2 00:43 .fontconfig 
drwx------ 4 ishpeck users 4.0K Nov 13 22:10 .gconf 
drwx------ 2 ishpeck users 4.0K Oct 1 20:50 .gconfd 
-rw-r--r-- 1 ishpeck archive 127K Nov 7 10:19 geany-colors.tar.gz 
drwxr-xr-x 2 ishpeck users 4.0K May 31 05:43 .ghc 
drwxr-xr-x 22 ishpeck archive 4.0K Nov 14 18:24 .gimp-2.6 
-rw-r--r-- 1 ishpeck users  75 May 31 12:59 .gitconfig 
-rw-r--r-- 1 ishpeck archive 893 Oct 12 20:03 .gitk 
drwx------ 3 ishpeck archive 4.0K Jul 30 19:46 .gnome 
drwx------ 3 ishpeck users 4.0K Jul 1 13:37 .gnome2 
drwx------ 2 ishpeck archive 4.0K Jul 1 13:37 .gnome2_private 
drwxr-xr-x 2 ishpeck users 4.0K Nov 2 19:05 .gstreamer-0.10 
-rw------- 1 ishpeck users 234 Nov 7 20:36 .gtk-bookmarks 
-rw-r--r-- 1 ishpeck users 164 Jun 1 04:10 .gtkrc-2.0 
drwx------ 2 ishpeck users 4.0K May 30 03:35 .gvfs 
drwxr-xr-x 3 ishpeck users 4.0K May 28 15:51 .icons 
drwxr-xr-x 2 ishpeck archive 4.0K Aug 11 06:59 .idlerc 
drwx------ 2 ishpeck archive 4.0K Jul 16 19:36 .irssi 
-rw------- 1 ishpeck users 846 Nov 11 20:09 .lesshst 
drwx------ 3 ishpeck users 4.0K Nov 11 22:35 .liferea_1.6 
drwx------ 3 ishpeck users 4.0K May 28 06:12 .local 
-rw-r--r-- 1 ishpeck users 842 Jun 5 16:34 lynx_bookmarks.html 
-rw------- 1 ishpeck users 3.3K Jun 11 04:14 Lynx.trace 
drwx------ 3 ishpeck users 4.0K May 29 20:14 .macromedia 
drwx------ 2 ishpeck users 4.0K Sep 2 19:42 Mail 
drwxr-xr-x 5 ishpeck users 4.0K Nov 7 07:47 media 
-rw-r--r-- 1 ishpeck archive 3.8K Jul 16 22:56 .mrxvtrc 
drwxr-xr-x 2 ishpeck archive 4.0K Sep 14 08:12 .mutt 
-rw-r--r-- 1 ishpeck archive 3.3K Oct 14 06:32 .muttrc 
-rw-r--r-- 1 ishpeck archive 1.3K Jul 27 22:36 .nvidia-settings-rc 
drwx------ 3 ishpeck users 4.0K May 28 08:35 .pki 
-rw------- 1 ishpeck archive 0 Nov 9 07:24 postponed 
drwxr-xr-x 12 ishpeck users 4.0K Sep 28 08:08 project 
drwx------ 2 ishpeck archive 4.0K Nov 14 18:07 .pulse 
-rw------- 1 ishpeck users 256 May 31 03:52 .pulse-cookie 
drwx------ 6 ishpeck users 4.0K Nov 14 20:15 .purple 
-rw-r--r-- 1 ishpeck users 12K Nov 2 07:06 .pypanelrc 
drwxr-xr-x 3 ishpeck users 4.0K Jun 11 02:29 .q3a 
-rw-r--r-- 1 ishpeck archive 1.9K Aug 23 17:11 .recently-used 
drwxr-xr-x 2 ishpeck users 4.0K Nov 2 07:55 .sbin 
- rw------- 1 ishpeck archive 11M Nov 14 19:52 sent 
-rw-r--r-- 1 ishpeck archive 61 Jul 2 21:44 .signature 
drwxr-xr-x 3 ishpeck archive 4.0K Nov 5 07:43 .slime 
drwx------ 2 ishpeck users 4.0K Oct 31 22:46 .ssh 
drwxr-xr-x 3 ishpeck archive 4.0K Aug 6 16:49 .steelstorm 
drwxr-xr-x 3 ishpeck archive 4.0K Jul 28 23:16 .subversion 
-rw-r--r-- 1 ishpeck archive 273 Jun 18 02:47 .synergy.conf 
drwxr-xr-x 9 ishpeck users 4.0K Jun 1 04:10 .themes 
drwx------ 3 ishpeck users 4.0K May 28 09:39 .thumbnails 
drwxr-xr-x 2 ishpeck users 4.0K Oct 25 06:36 .vim 
-rw------- 1 ishpeck archive 19K Nov 14 19:52 .viminfo 
-rw-r--r-- 1 ishpeck users  65 Jun 17 22:30 .vimrc 
drwxr-xr-x 2 ishpeck archive 4.0K Nov 13 23:26 .VirtualBox 
drwxr-xr-x 3 ishpeck archive 4.0K Jul 30 19:52 .vvvvvv 
-rw------- 1 ishpeck archive 101 Aug 17 05:51 .Xauthority 
-rw-r--r-- 1 ishpeck archive 134 Aug 19 06:32 .Xdefaults 
-rw-r--r-- 1 ishpeck users 120 Sep 26 21:19 .xinitrc 
-rw-r--r-- 1 ishpeck archive 7.6K Oct 13 07:23 .xscreensaver 
Word 

그래서, 본질적으로, 그래,이 병렬로 실행합니다.

+1

이제 질문은, 아이를 부모로부터 어떻게 분리 할 수 ​​있습니까? – PaulDaviesC

0

파이썬 문서에 따르면 http://docs.python.org/library/subprocess.html

subprocess.call (인수 * 표준 입력 = 없음, 표준 출력 = 없음, 열려진 = 쉘 = 거짓 없음)
실행 인수에 의해 기술되는 명령. 을 완료 할 때까지 기다린 다음 returncode 속성을 반환하십시오.

그래서 스폰 프로세스는 python 스크립트 자체의 하위 프로세스입니다.