linux中的前台运行和后台运行有什么区别 (linux 后台运行 amp)

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


数据运维技术 » linux中的前台运行和后台运行有什么区别 (linux 后台运行 amp)