如何启动新终端来跟踪从Django触发的shell脚本?

时间:2018-03-12 21:36:20

标签: python django linux bash

我正在处理Django 2.0.2内置的Python 3.6.3项目,该项目需要将shell脚本作为后台子进程分离。

这就是我目前触发它的方式:

import subprocess

subprocess.Popen(./master.sh)

不幸的是,这并不像Django服务器那样回显到与网站上其他进程相同的终端。

管道在完成后输出到log.txt文件,但由于某些工作需要数小时才能完成,我希望有办法通过生成新终端来完成工作。

我尝试过使用gnome-terminal命令,但到目前为止我还没有成功读取。

关于如何实现它的任何想法?

1 个答案:

答案 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

分离