1.守护进程
程序写成守护进程,fork两次。
2.系统日志
调用openlog, syslog, closelog
使用syslog或rsyslog服务,配置/etc/syslog.conf或/etc/rsyslog.conf
例子:
local2.* /var/log/app.log
重启syslog生效
/etc/init.d/syslog restart
syslog使用说明:
配置文件的格式: 设施.级别 log文件路径
本地使用的设施有:LOG_LOCAL0~LOG_LOCAL7
具体查看【UNIX网络编程卷1】
3.开机启动
将命令写入/etc/rc.local
4.程序崩溃后自动启动
使用crond服务,定时判断是否存在某个进程,若不存在,则启动。
我在程序做了应用程序单例,所以每2分钟启动一下程序即可,若程序存在,则不会重复启动该程序。
crontab配置:
查看root的任务
crontab -l -u root
编辑或添加任务
crontab -e -u root
删除root的任务
crontab -r -u root
crontab格式:
[分钟0-59] [小时0-23] [日期1-31] [月份1-12] [星期0-6](0表示星期日) [命令]
例子:
* * * * * date +"%H:%M:%S" >> /opt/time.txt
每分钟往/opt/time.txt写入时间