linux中程序在前台运行和后台运行有什么区别

 我来答
heaven半夏轻浅
推荐于2017-06-21 · TA获得超过5974个赞
知道大有可为答主
回答量:2047
采纳率:76%
帮助的人:1176万
展开全部

你所谓的“后台进程”应该叫做 守护进程(daemon),init就是特殊的守护进程,PID为1。 
Linux启动时vmlinux内核加载initrd.img(ram disk)作为根文件系统并开始执行其中的init来加载各种模块、服务。常见的Linux服务也都是守护进程,比如管理系统日志的rsyslogd,数据库服务mysqld等等。 

你也可以把一个运行在shell里的进程转到后台运行,比如把sar系统监控数据采集放到后台运行: 
nohup sar -u 2 >>sar.log 2>&1 &

加入到/etc/rc.local,还可以开机自启动:

nohup sar -u 2 >>/var/log/sar.log 2>&1 &

nohup的用途就是让提交的命令忽略sighup信号(一个kill信号,编号为1),Terminal关闭时就发送了这个信号给sar。

结尾加上"&"将命令同时放入后台运行,如果不使用nohup仅用&,Terminal关闭时sar进程也会退出。

2>&1 表示错误重定向到标准输出,2表示stderr,1表示stdout。

其中日志归档可以使用logrotate(logrotate是一个/etc/cron.daily/任务,由cron守护进程定时执行)

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式