退出 tmux 服务器并结束所有正在运行的进程

退出 tmux 服务器并结束所有正在运行的进程

我正在运行由 tmuxinator 配置的 tmux 服务器。在一个窗格中,我的 django 服务器正在运行:

python manage.py run_gunicorn

如果我通过调用kill-server命令退出 tmux,则该run_gunicorn命令不会像我预期的那样被终止,而是被发送到后台:

$ ps aux | grep gunicorn 
alp       3358  1.0  0.1 126988 21728 ?        S    13:06   0:00 python manage.py run_gunicorn

如何在退出 tmux 服务器的同时退出其中所有正在运行的进程?

答案1

我找到了一种替代方法,即在我的 tmuxinator 配置中添加一行:

pre: pkill -f "^python manage.py run_gunicorn"

开头^的 仅匹配使用该命令启动的进程。如果没有它,您也会终止 tmux 进程。

这并不能解决剩余后台进程的问题,但它会在重新启动 tmux 会话时终止所有旧进程,对我来说这是一个可以接受的解决方法。

相关内容