我想quit
筛选会话。为此,我使用screen -S session_name -X quit
。这很有效,但不像我会的那样。
正在运行的程序screen
有一个处理程序SIGTERM
,我确实需要执行此处理程序,以便它可以执行适当的清理。但是,运行screen -S session_name -X quit
导致程序退出而不调用其处理程序。
一个简单的kill $(pidof bla)
结果是调用我的处理程序、进行适当的清理,并最终关闭会话screen
。
但是,我希望能够通过关闭screen
其会话名称并让其“转发”SIGTERM
信号来停止这一切。
任何帮助都值得感激,谢谢。
答案1
我提出的解决方案是受到 @Kwaio 建议的解决方案的启发。就我而言,我只有一个进程有兴趣接收信号SIGTERM
。此进程已将其转发给其子进程。
假设只有一个screen
具有给定名称的会话。
kill $(ps h --ppid $(screen -ls | grep session_name | cut -d. -f1) -o pid)