要关闭除当前 Shell 会话之外的其他 bash 会话
方法 1: 使用
pkill和$$变量在 bash 中,
$$变量包含当前 Shell 会话的进程 ID(PID)。你可以结合使用pkill命令和$$变量来杀死除当前 Shell 会话之外的所有 bash 会话。终端窗口 pkill -9 -u $(whoami) bash -o $$这个命令的含义如下:
pkill -9:发送 SIGKILL 信号杀死匹配条件的进程。-u $(whoami):限制只杀死当前用户的进程。whoami返回当前的用户名。bash:指定要杀死的进程名。跳转到“-o $$:-o(older than)选项排除了比给定 PID(在这里是当前 Shell 会话的 PID,即$$)更新的进程,这样就不会杀死当前的 bash 会话。”
-o $$:-o(older than)选项排除了比给定 PID(在这里是当前 Shell 会话的 PID,即$$)更新的进程,这样就不会杀死当前的 bash 会话。方法 2: 查看并手动杀死进程
如果你想要更精确地控制哪些会话被关闭,或者你的系统不支持上述方法中的命令,你可以手动查找并杀死进程。
- 使用
ps命令查看所有 bash 会话:终端窗口 ps -u $(whoami) | grep bash
你会看到一个进程列表,每行包含一个 PID 和其他信息。找到你想要保留的当前会话的 PID。
对于你想要关闭的每个 bash 会话,使用
kill命令加上它们的 PID:终端窗口 kill -9 <PID>将
<PID>替换为你想要杀死的 bash 会话的进程 ID。这种方法更为直接,允许你在杀死进程前进行检查,以避免意外关闭重要的会话。