byobu 允许用户创建多个会话。一旦有多个会话,如何终止整个会话?
如果有一个foo
包含 3 个窗口和bar
4 个窗口的会话,要终止会话foo
,用户必须CTRL+F6
在每个窗口中运行三次才能终止整个会话。有没有更好的替代方案?
答案1
您可以使用以下命令列出 byobu 当前会话:
byobu list-session
你应该看到类似这样的内容:
session_1: 1 windows (created Tue Feb 6 18:05:35 2018) [237x49] session_2: 1 windows (created Tue Feb 6 18:05:44 2018) [237x49] session_3: 1 windows (created Tue Feb 6 18:06:05 2018) [237x49]
每行的第一个字是会话名称。
因此,要终止单个会话,您可以执行以下操作:
byobu kill-session -t <session_name>
要杀死session_2
前面的列表,你可以执行以下操作:
byobu kill-session -t session_2
答案2
ps -u foo
然后
kill <number1> <number2> ...
或不太关心
pkill -KILL <pattern>
当模式名称太短并且应用了不相关的流程时,这种方法并不安全。
man killall
可能有助于理解。
答案3
如果您的 byobu 使用 GNU screen 作为后端,请使用 Ctrl+a Ctrl+k 来关闭当前窗口。有关更多信息,请参阅 GNU screen 手册:https://www.gnu.org/software/screen/manual/screen.html