语法: kill -SIGNAL pid SIGNAL是信号,kill -l可以查看支持的信号 常用信号: 1) SIGHUP: 无须关闭进程而让其重读配置文件 2) SIGINT: 中止正在运行的进程;相当于Ctrl+c 3) SIGQUIT:相当于ctrl+\ 9) SIGKILL: 强制杀死正在运行的进程 15) SIGTERM:终止正在运行的进程 18) SIGCONT:继续运行 19) SIGSTOP:后台休眠 指定信号的方法: (1) 信号的数字标识:1, 2, 9 (2) 信号完整名称:SIGHUP (3) 信号的简写名称:HUP 例子: kill -9 2377 #终止2377正在运行的进程 kill -9 2378 #让2377 的休眠 kill -18 2378 #让2377继续运行 通常用命令ps aux |grep httpd(输入要找到包信息)找到文件的进程号,执行kill让它重新生效 一般都是kill -1 3108UA 后面是进程号这里-HUP=1 按名称 Killall: 语法: killall [-SIGNAL] comm… #后面跟的是程序 kill 只能一次杀一个进程,如果是一百个进程杀就比较麻烦了,所######以killall就解决了这个问题。 例如:我要杀掉httpd 这程序的所有进程就可以直接一条命令 [root@centos6 ~]# kill -9 httpd -9是强制杀死的意思 按模式:pkill 语法: [options] pattern -SIGNAL -u uid: effective user ,生效者 -U uid: real user ,真正发起运行命令者 -t terminal: 与指定终端相关的进程 -l: 显示进程 名(pgrep 可用) -a: 显示完整格式的进程 名( (pgrep 可用) -P pid: 显示指定进程的子子进程 例子: 我要杀掉wang用户所有运行的进程,可以用命令 pkill -9 -u wang pkill -9 -t pts/0 #-t是指定终端号 作业管理 Linux 的作业控制 前台作业:通过终端启动,且启动后一直占据终端 后台作业:可通过终端启动,但启动后即转入后台运行(释放终端) 让作业运行于后台 (1) 运行中的作业: Ctrl+z (2) 尚未启动的作业: COMMAND & COMMAND是命令的意思 后台作业虽然被送往后台运行,但其依然与终端相关;退出终端,将关闭 后台作业。如果希望送往后台后,剥离与终端的关系 nohup COMMAND &>/dev/null & screen;COMMAND 查看当前终端所有作业:jobs 作业控制: fg [[%]JOB_NUM] :把指定的后台作业调回前台 bg [[%]JOB_NUM] :让送往后台的作业在后台继续运行 kill [%JOB_NUM]: 终止指定的作业 例子: 1 ping 172.18.0.1 & & 命令直接放在后台运行 图中可以看到显示的内容,也可以直接输入要运行的命令,注意放在后台运行的,按 ctrl + c 命令是结束不了的,需要用到 jobs 命令来查看后台运行的任务列表号,然后 用命令 fg 3 (3是工作号) 调回到前台再用ctrl + c 就可以结束了。也可以用 kill %3 2、screen的用法 就是当我们工作中通常用远程去执行一个动作和备份或者其他命令时,花的时间长,在这期间突然网络会中断,任务没完成,这时候我们就可以用开启scree会话来解决。 流程: 输入screen命令 然后执行要运行的任务就可以了,例如我们执行ping的任务 在另一个窗口查看它们的进程关系,也可以再ps aux 命令查看 现在我们把网络断了,在查看它的进程,发现会话和ping的进程还在说明即使断网了任务还在运行,等网络正常了重新启动任务就可以了。 命令:screen -ls 查看会话处于休眠中,-r 是恢复会话的意思。 *注意在6上我们放在后台执行网络一段还在执行,7上即使放在后台执行网络一断就不执行了。 并行运行: 同时运行多个进程,提高效率 方法1 vim all.sh f1.sh& f2.sh& f3.sh& 用于想要同时进行多种任务,节省时间 案例: 1 创建f1 和 f2 两个脚本,一般如果不放在后台执行就按顺讯先执行f1.sh完成后才执行f2.sh,如果我们想要同时并行执行就创建新的all.sh及脚本把他们全都放进去,后面加&后台执行的命令,赋予权限,在执行./all.sh就可以了。 一旦想要停止,all是前台执行就用ps aux 查看 ,用killall f1.sh 直接杀就可以了。 2 (./f1.sh &);(./f2.sh &);(./f3.sh &) 用分号隔开执行多条命令这种方法比较简单,如果我们想停止停不下了,用killall f1.sh 或者killall f2.sh 3 { ./f1.sh& ./f2.sh& ./f3.sh& } 记得要加相对路径 . 停止任务也是同上