结束进程的shell脚本如下:
#!/bin/bash# kill all process
ps aux|grep "local" | grep -v grep | awk '{print $2}' | while read line; do kill -9 $line; done
解析:
ps aux
命令常用于查看当前系统中运行的进程,以及它们所占用的资源和状态信息;
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER: 显示每个进程所属的用户。
PID: 进程的唯一标识符(Process ID)。
%CPU: 进程当前使用的 CPU 百分比。
%MEM: 进程当前使用的内存百分比。
VSZ: 进程的虚拟内存大小(以 KB 或 MB 为单位)。
RSS: 进程使用的物理内存大小(以 KB 或 MB 为单位)。
TTY: 进程关联的终端设备。
STAT: 进程的状态,包括运行状态(R,表示运行)、睡眠状态(S,表示睡眠)、僵尸状态(Z,表示僵尸进程)等。
START: 进程启动的时间。
TIME: 进程占用的 CPU 时间。
COMMAND: 进程所对应的命令。
ps aux 输出的是所有用户的进程信息,其中 a 表示显示所有用户的进程,u 表示显示进程的详细信息,x 表示显示没有控制终端的进程。
grep -v 是反向查找的意思,比如 grep -v "grep" 就是查找不含有 grep 字段的行。
command1 | while read line; do command;done,是以command1的输出作为read循环的输入,直到没有输入才退出循环。
admin@ubuntu-test-rongheceshi:~$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 168872 12716 ? Ss 4月19 0:19 /sbin/init splash
root 2 0.0 0.0 0 0 ? S 4月19 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? I< 4月19 0:00 [rcu_gp]
root 4 0.0 0.0 0 0 ? I< 4月19 0:00 [rcu_par_gp]
root 5 0.0 0.0 0 0 ? I< 4月19 0:00 [slub_flushwq]admin@ubuntu-test-rongheceshi:~$ ps aux|grep "BlastServer"
root 2740 0.9 0.0 77344 7916 ? Sl 4月19 257:19 /usr/lib/vmware/viewagent/VMwareBlastServer/BlastServer
admin 306291 0.0 0.0 12132 2628 pts/6 S+ 16:54 0:00 grep --color=auto BlastServeradmin@ubuntu-test-rongheceshi:~$ ps aux|grep "BlastServer" |grep -v grep
root 2740 0.9 0.0 77344 7916 ? Sl 4月19 257:19 /usr/lib/vmware/viewagent/VMwareBlastServer/BlastServeradmin@ubuntu-test-rongheceshi:~$ ps aux|grep "BlastServer" |grep -v grep |awk '{print $2}'
2740admin@ubuntu-test-rongheceshi:~$ ps aux|grep "BlastServer" |grep -v grep |awk '{print $2}'| while read line; do echo "PID=$line";done
PID=2740