啥是守护进程?
就是没有终端的那个框框。
没有框框咋启动?
1.开机在系统启动后,由系统初始化脚本启动。位于/etc的某个目录中
2.由用户在终端启动。
程序有无终端的一些影响?
1.无消息打印,需要syslog函数。
2.其它影响可以在创建的过程中领悟到。
开始写一个守护进程?
1.fork(终止父进程,子进程即可在后台运行。)
2.setsid(创建一个新的会话,session,从而不在有控制终端)
3.忽略SIGHUP信号并再次fork(防止打开终端设备时会自动获取一个会话终端,新的子进程不再是会话头进程从而不能自动获得一个控制终端)
4.为错误处理函数设置标识(用syslog取代fprintf)
5.改变工作目录(当前工作目录的文件系统无法拆卸)
6.关闭所有打开的描述符(关闭从shell继承来的描述符,干脆关闭前64个)
7.将stdin,stdout,stderr重定向到/dev/null。(防止占用这些描述符的perror的隐患)
8.使用syslogd处理错误。(调用一下openlog)