📜  杀死所有屏幕会话 linux - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:10:40.786000             🧑  作者: Mango

杀死所有屏幕会话 linux - Shell-Bash

在Linux系统中,有时会使用screen或tmux等程序来创建多个会话窗口。这些会话窗口可以独立运行程序,可以同时运行多个终端或运行后台任务等。但是,有时候需要关闭所有的会话窗口,这个时候就可以使用下面的Linux Shell-Bash脚本来实现。

脚本介绍

本脚本使用ps命令查找所有的screen或tmux会话程序,然后使用kill命令杀死这些程序。具体步骤如下:

  1. 首先通过ps命令查找所有screen或tmux的进程,用grep过滤出所需进程名,最后通过awk进行格式化处理,得到进程PID。
ps aux | grep 'screen\|tmux' | grep -v grep | awk '{print $2}'
  1. 对于得到的进程PID,使用kill命令杀死这些进程。
kill <进程PID>

以上两个步骤可以组合为一个Shell脚本,脚本内容如下:

#!/bin/bash

pids=$(ps aux | grep 'screen\|tmux' | grep -v grep | awk '{print $2}')

for pid in $pids
do
  kill $pid
done

echo "所有屏幕会话已被杀死"
使用方法
  1. 打开终端,创建一个新的screen或tmux会话;
  2. 使用Ctrl+A+D快捷键,退出创建的会话;
  3. 执行脚本:
./kill_session.sh
  1. 输出结果为:
所有屏幕会话已被杀死
注意事项
  1. 执行脚本需具有sudo权限,否则杀死进程会失败;
  2. 请谨慎使用该脚本,以免误杀正在运行的程序或任务。