Python 通过apache+打开X窗口上的终端;德扬戈
我正在使用apache+django(mod_wsgi)来完成一些工作 首先,我编写了一个简单的bash脚本,它将调用X窗口上的终端, 执行一些命令。例:Python 通过apache+打开X窗口上的终端;德扬戈,python,django,gnome-terminal,Python,Django,Gnome Terminal,我正在使用apache+django(mod_wsgi)来完成一些工作 首先,我编写了一个简单的bash脚本,它将调用X窗口上的终端, 执行一些命令。例: DISPLAY=:1 gnome终端-e'sleep 9999'& 如果我在ssh会话中运行此命令/脚本,即使我注销ssh会话,它也会保持活动状态。 但是,如果我在django python代码中执行此命令。 gnome终端将立即运行并关闭 因为其父级(apache会话?)已退出 我如何通过django+apache运行这样的命令(gnome
DISPLAY=:1 gnome终端-e'sleep 9999'&
如果我在ssh会话中运行此命令/脚本,即使我注销ssh会话,它也会保持活动状态。
但是,如果我在django python代码中执行此命令。
gnome终端将立即运行并关闭
因为其父级(apache会话?)已退出
我如何通过django+apache运行这样的命令(gnome terminal-e'cmd')而不杀死它?
非常感谢。我想第一个问题是“你确定要这样做吗?” 您试图如何启动该流程?如果您正在调用
os.system
它肯定不会存活,但是如果您正在调用os.fork()
然后调用os.execv
我认为它会存活。但是,如果这不起作用,我认为您可以遵循标准的守护进程,这应该会起作用
这有点像:
fork()
in child, close open file descriptors
open stderr, stdout, stdin (read from dev/null, write to dev/null perhaps)
setsid()
chdir('/')
fork()
in child, exec the terminal.
请参阅此处有关守护进程的讨论: