プログラムの結果を待たずに終了するSSHコマンドによってリモートで呼び出されるプログラムを実行するためのラッパースクリプトを探しています。
これが私のコードです:
#!/usr/bin/python
import sys
import os, subprocess
def main():
print "PID_last_child", os.getpid()
argpass = ['main_p.py']
for a in sys.argv:
if a.find("wrapper.py") == -1:
argpass.append(a)
pid = subprocess.Popen(argpass).pid
print "PID for the actual process: ", pid
if __name__ == "__main__":
print "PID_MAIN:", os.getpid()
try:
pid = os.fork()
print "FORK1: ", pid
if pid > 0:
sys.exit(0)
except OSError, e:
print >>sys.stderr, "fork failed: %d (%s)" % (e.errno, e.strerror)
sys.exit(1)
os.chdir('/')
os.setsid()
os.umask(0)
try:
pid = os.fork()
print "FORK2: ", pid
if pid > 0:
sys.exit(0)
except OSError, e:
print >>sys.stderr, "fork failed: %d (%s)" % (e.errno, e.strerror)
sys.exit(1)
main()
ダブルフォークを使っていると思いますが、それはできるはずです...でも今のところ運がありません。
これについての考えは大歓迎です。