我正在处理Django 2.0.2
内置的Python 3.6.3
项目,该项目需要将shell脚本作为后台子进程分离。
这就是我目前触发它的方式:
import subprocess
subprocess.Popen(./master.sh)
不幸的是,这并不像Django服务器那样回显到与网站上其他进程相同的终端。
管道在完成后输出到log.txt
文件,但由于某些工作需要数小时才能完成,我希望有办法通过生成新终端来完成工作。
我尝试过使用gnome-terminal
命令,但到目前为止我还没有成功读取。
关于如何实现它的任何想法?
答案 0 :(得分:0)
一个丑陋的解决方案是使用类似tmux的东西。它允许您在后台创建终端并在以后附加到终端。
tmux new -s hello -d "for((ii=0;ii<100;ii++)); do echo \$ii; sleep 1; done"
(在引号中使用你的命令,而不是......完成)
这将在后台创建一个终端(名为hello),可以使用命令
附加到该终端tmux a -t hello
使用ctrl-b d
分离