-
作业控制
-
放入后台
nohup command & 将命令放入后台执行,即使用户退出登录仍然运行。注意:nohup不支持bash 内置的指令;
-
显示作业信息
jobs -l 显示后台所有作业 jobs -r 仅显示后台正在运行的作业 jobs -s 仅显示后台已经暂停的作业 结果中[]中的数字代表作业号,加号代表此作业是最后一个被放入后台运行的作业,减号代表倒数第二个被放入后台运行的作业 补充:后台运行的作业只有Running和Stopped两种状态,使用Ctrl+z放入后天运行的作业,默认都是Stopped状态
-
控制后台作业
bg %jobnumber 在后台运行后台中停止的作业 fg %jobnumber 将后台中的作业放入前台运行,使用作业号指定具体的作业。如果不指定作业号则默认将最后放入后台的作业放入前台运行,还可以使用减号代表倒数第二个放入后台的作业。 注意:bash 只能管理用户自己的作业而不能管理其他用户的作业,即使是root也不能将别人的bash下面的job拿来运行
-
控制命令的优先级
nice -n command 以优先级n启动一个命令,n越小优先级越高,n越大优先级越低,优先级高的命令会被频繁调度,命令默认优先级为0,最高为-20,最低为19,ps和top命令的输出中NI代表命令优先级 renice -n pid 改变正在运行的进程的优先级
-
定时执行某个命令
watch -n num command 每num秒运行一次command命令 eg watch -n 1 go run 2.go
-
-
进程与作业管理
-
kill
kill -信号数字或信号名 进程号或%jobnumber (信号名可以省略sig,信号名不区分大小写) 选项 -l :显示可以使用的信号 -2 :中断(interrupt)进程或作业,相当于Ctrl+c -9 :强制杀死作业或进程 -15:终止(terminated)作业或进程,与-2选项基本等价,kill默认使用的此信号 -20:相当于Ctrl+z,将前台的进程或作业放入后台,处于Stopped状态 -1 :重新读取配置文件,比如系统服务或守护进程 注意:root用户可以kill任何进程,普通用户只能kill自己启动的进程
-
kilall
killall 选项 进程名 选项 -l:打印所有已知信号列表 -e:对长名称(超过15个字符)进行精确匹配 -I:忽略大小写 -g:杀死进程所属的进程组 -i:交互式杀死进程,杀死进程前需要进行确认 -q:如果没有进程被杀死,则不输出任何信息 -r:使用正规表达式匹配进程 -s:根据指定的信号名控制进程或作业 -u:杀死指定用户的进程。 eg kill -l kill -2 %1 终止作业1,相当于kill -s SIGINT %1 ps -elf|grep httpd|awk '{print $4}'|xargs kill -2 终止nginx的所有进程
-