前后台进程的本质区别

    xiaoxiao2025-11-16  3

    问题:

    linux 前台进程,后台进程有什么本质的区别

    虽然,很多人都说 在命令后加个&就是把该进程转到后台去,然后,前台还能做其他事情,但是,我觉得这是表面形象,其两者有什么本质区别呢?

    你所谓的“后台进程”应该叫做 守护进程(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守护进程定时执行)。

    转载请注明原文地址: https://ju.6miu.com/read-1304240.html
    最新回复(0)