Linux中,进程可分为前后台进程
1前台进程
前台进程可以理解为绑定了shell的进程
举个例子,在kali中打开一个终端,输入firefox启动火狐浏览器,然后关闭终端,这时firefox会一起被关闭。这里的firefox进程就是前台进程,它的存活依赖对应的shell
note:亲测,在Windows cmd 和 power shell中打开chrome.exe程序,关闭cmd或power shell,谷歌浏览器依然健在---20200126
2后台进程
后台进程就是守护进程(daemon),它独立于终端存在,只要机器不断电,它就活着。后台进程往往执行一些长期的、稳定的任务。例如,httpd是Apache超文本传输协议(HTTP) 服务器的主程序,被设计为一个独立运行的后台进程
3前后台进程的感知差别
- 前台进程是和用户直接交互的进程。从现象上看,一个进程正在和用户交互,那么它就是前台进程。前台前台,前台当然是直接接待客户的妹子啊
- 后台后台,躲在背后干苦力,所以后台进程基本上不和用户打交道。很多系统服务就是后台进程
4Linux前后台进程的切换
- command& 让command启动的进程在后台运行。如 root@kali:~# firefox&
- jobs 查看后台运行的进程
- fg %jobsid 让后台运行的jobsid进程到前台来(注意是jobsid不是pid)
- bg %jobsid 让jobsid进程到后台去(注意是jobsid不是pid)
- ctrl + z 将当前前台任务暂停。暂停后可通过bg指令将其放置后台
5.设置命令不间断后台运行
prepare:
-
command [Arg] &
在当前session中,command在后台运行。若session关闭或者terminal关闭,则command的相关进程killed。因此,command [Arg] & 依赖session -
nohup command [Arg]
保持command不挂断地运行,当terminal关闭时忽略terminal的关闭信号而保持运行。 nohup command [Arg]不依赖session
无论是否重定向nohup命令的输出,相关的输出都会>到nohup.out文件
因此,设置某命令持续后台运行,常用:
nohup command [Arg] &
网友评论