天天看点

linux命令5之&,fg,bg,jobs,nohup等几个命令

linux的几个前后台任务切换命令

&:在命令后面,表示该命令后台执行。

jobs:查看当前有多少在后台运行。

fg(Foreround):把任务调至前台任务。

bg(Background):把任务调至后台任务。

Ctrl+z:暂停当前正在运行的任务。

暂停当前运行的程序:

#ctrl + z是暂停当前正在运行的程序
$^Z
$[1]+  Stopped                 ./redis-server
           

前台到后台,通过bg + 前台任务的标号[1],把任务调至后台:

#将刚才暂住的程序放到后台,并让其运行,此处的1是可以通过bg看到的,bg看到是几,你就可以把几开启
[[email protected] src]# bg 1
[1]+ ./redis-server &
           

后台到前台,通过fg + 后台任务的标号[1](当前只有1个后台的任务),把任务调至前台:

#将后台的程序调到前台
[[email protected] src]# fg 1
./redis-server
           

查看后台运行的任务列表:

#查看后台运行的程序及运行状态
[[email protected] src]# jobs
[1]+  Stopped                 ./redis-server
[2]+  Running                 tail -f /var/log/messages &
           

感谢参考:https://blog.csdn.net/foryouslgme/article/details/52699608

附nohup的用法

nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。要运行后台中的 nohup 命令,添加 & ( 表示"and"的符号)到命令的尾部。

默认情况下所有的标准输出和错误输出都写入nohup.out文件中,除非是重定向。

命令格式:

命令1:nohup command &
           
命令2:exit
           

解释:命令1:是把comman命令提交到后台执行,运行日志写入当前nohup文件。命令2:正常注销(退出)。

问题:为啥要执行命令2?

答案:执行命令2,然后关闭shell,任务提交的后台且正常执行。如果不执行命令2,则关闭shell后命令1可能失效。

继续阅读