Linux守护进程管理与systemd使用指南
守护进程基础与信号处理程序实现
在Linux系统中,守护进程是一种在后台持续运行的进程,通常用于提供系统服务。启动守护进程时,有时需要以root权限运行,例如当它需要写入 /var/run/ 目录时。不过,如果更改目录或完全跳过该目录,守护进程也可以作为普通用户运行。大多数守护进程以root权限运行,但也有一些处理用户相关事务的守护进程,如 tmux ,可以作为普通用户运行。
为了避免守护进程锁定某个目录,通常会将其工作目录更改为根目录 / ,因为根目录不会被移除或卸载,对守护进程来说是一个安全的工作目录。
传统的Linux/Unix守护进程仍然在使用,不过自systemd出现后,创建守护进程的方式有了变化。例如,建议保持 stdout 和 stderr 打开,并将所有日志消息发送到那里,这些消息将显示在日志中。
有一个名为 daemon() 的函数可以帮助我们创建守护进程,它能完成诸如分叉、关闭和重新打开文件描述符、更改工作目录等繁重任务。但需要注意的是,该函数不使用我们在创建守护进程时采用的双分叉技术,这在 man 3 daemon 手册页的 BUGS 部分有明确说明。
在之前创建的简单守护进程中,存在一些问题,比如守护进程被终止时,PID文件未被移除,打开的文件流 /tmp/my-daemon-is-alive.txt 也
超级会员免费看
订阅专栏 解锁全文
35

被折叠的 条评论
为什么被折叠?



