在实际使用shell 过程当中,一些须要耗时较长的处理过程,最好是放到后台执行,从而使咱们可以在终端执行更其余须要更多关注的操做。下面整理了一些关于后台执行任务的相关命令。html
&
将&
加在一个命令的最后,能够把这个命令放到后台执行linux
注意:redis
1.若是关闭当前终端,将没法维护后台任务的执行 2.须要用户交互的命令不要放在后台执行
好比这里把redis服务的启用的脚本写到了redis-service-startup.sh
中shell
# 后台运行 ./redis-service-startup.sh &
nohup
使用&命令后,做业被提交到后台运行,当前控制台没有被占用,可是一但把当前控制台关掉(退出账户时),做业就会中止运行。nohup命令能够在你退出账户以后继续运行相应的进程。nohup就是不挂起的意思( no hang up)。该命令的通常形式为:nohup command &
.net
# nohup 后台运行 nohup ./redis-service-startup.sh &
jobs
查看后台任务jobs -l # 查询结果 [1]+ 789 Running ./redis-service-startup.sh & (wd: ~/Documents/dev-scripts)
[1] 中表示该任务的job number 是 1。code
kill
中止后台任务若是要中止该任务,可使用kill 命令,结合上面的jobnumberhtm
# 中止jobnumber = 1的后台任务 kill %1
当使用nohup 后,关闭控制台后,后台任务仍然执行,这时候只能经过ps 命令查看咱们执行的任务的进程号, 而后再经过kill -9 进程号
杀死进程blog
ctrl + c
终止前台命令ctrl + z
将正在执行的任务放到后台执行fg
(fg %jobnumber
) 将任务从后台调往前台bg
(bg %jobnumber
) 将后台暂停的任务变成执行任务