Стоит задача:
1) получить PID запущенного процесса из под Python
2) отследить тот момент, когда программа будет закрыта пользователем.
До второго пункта вопроса пока не дошёл, так как столкнулся с проблемой в первом вопросе.
Сама по себе задачка достаточно тривиальная
import os
pid=os.spawnlp(os.P_NOWAIT,'/Programs/bin/soffice','soffice','my_doc.doc')
print pid
$ python process.py
23409
$ I18N: Operating system doesn't support locale ""
I18N: Operating system doesn't support locale "en_US"
Xlib: extension "Generic Event Extension" missing on display ":0.0".
QTextCodec: using KOI8-R, probe failed (e0 ce ru)
Xlib: extension "Generic Event Extension" missing on display ":0.0".
Xlib: extension "Generic Event Extension" missing on display ":0.0".
Xlib: extension "Generic Event Extension" missing on display ":0.0".
Xlib: extension "Generic Event Extension" missing on display ":0.0".
Failed to initialize GEM. Falling back to classic.
$
$ ps ax | grep soffice
23409 p1 I 0:00,01 /bin/sh /Programs/bin/soffice my_doc.doc
23414 p1 I 0:00,00 /bin/sh /Programs/bin/soffice my_doc.doc
23415 p1 I 0:00,00 /bin/sh /Programs/bin/soffice my_doc.doc
23416 p1 I 0:00,00 /bin/sh /Programs/bin/soffice my_doc.doc
23417 p1 I 0:00,00 /bin/sh /Programs/bin/soffice my_doc.doc
23419 p1 I 0:00,00 /bin/sh /Programs/bin/soffice my_doc.doc
23421 p1 I 0:00,00 /bin/sh /Programs/bin/soffice my_doc.doc
23422 p1 I 0:00,00 /bin/sh /Programs/OpenOffice-EN3.0.1/bin/soffice my_doc.doc
23426 p1 I 0:00,01 /bin/sh /Programs/OpenOffice-EN3.0.1/openoffice.org-3.0.1/openoffice.org3/program/soffice my_doc.doc
23434 p1 S 0:11,89 /Programs/OpenOffice-EN3.0.1/openoffice.org-3.0.1/openoffice.org3/program/soffice.bin my_doc.doc
24655 p2 S+ 0:00,00 grep soffice
$
Однако, может возникнуть такая ситуация, что OpenOffice уже будет открыт.
Запускаю OpenOffice, создаю в нём новый документ, пишу что то от балды и оставляю открытым. Далее
$ python process.py
29129
$ I18N: Operating system doesn't support locale ""
I18N: Operating system doesn't support locale "en_US"
Xlib: extension "Generic Event Extension" missing on display ":0.0".
QTextCodec: using KOI8-R, probe failed (e0 ce ru)
Xlib: extension "Generic Event Extension" missing on display ":0.0".
Xlib: extension "Generic Event Extension" missing on display ":0.0".
Xlib: extension "Generic Event Extension" missing on display ":0.0".
Xlib: extension "Generic Event Extension" missing on display ":0.0".
Failed to initialize GEM. Falling back to classic.
$
$ ps ax | grep soffice
28843 ?? I 0:00,01 /bin/sh /Programs/bin/soffice
28848 ?? I 0:00,00 /bin/sh /Programs/bin/soffice
28849 ?? I 0:00,00 /bin/sh /Programs/bin/soffice
28850 ?? I 0:00,00 /bin/sh /Programs/bin/soffice
28852 ?? I 0:00,00 /bin/sh /Programs/bin/soffice
28853 ?? I 0:00,00 /bin/sh /Programs/bin/soffice
28855 ?? I 0:00,00 /bin/sh /Programs/bin/soffice
28856 ?? I 0:00,00 /bin/sh /Programs/OpenOffice-EN3.0.1/bin/soffice
28860 ?? I 0:00,01 /bin/sh /Programs/OpenOffice-EN3.0.1/openoffice.org-3.0.1/openoffice.org3/program/soffice
28868 ?? S 0:12,51 /Programs/OpenOffice-EN3.0.1/openoffice.org-3.0.1/openoffice.org3/program/soffice.bin
29653 p2 S+ 0:00,00 grep soffice
$ ps ax | grep 29129
29754 p2 S+ 0:00,01 grep 29129
$
Как я понимаю, данная ситуация связана с работой самого OpenOffice, нежели с глюком Python. Но в любом случае, как решить данный вопрос я не знаю.
Спасибо всем отозвавшимся.