把程序变成服务

本文探讨了Linux中的服务,即守护进程,包括其开机自启动和后台运行的特点。详细介绍了进程异常退出的排查,如何产生和调试coredump文件,以及如何通过nohup和后台任务让进程在后台持续运行。同时,讲解了使用service命令和新一代的systemd进行进程监控和自定义守护进程的方法,特别强调了systemd的并行启动和简单配置优势。
摘要由CSDN通过智能技术生成

1. linux中的service是什么?

service其实事守护进程(daemon process),有如下2个特点:

  • 开机自启动
  • 运行在后台

1.1 linux中的进程

进程终止的原因:

  • 正常返回
  • 收到信号,异常退出

常见信号:
查看命令: kill -l
SIGTERM: 15, 允许进程执行完毕后退出,可被进程忽略,kill命令发出的默认信号
SIGINT: 2, ctrl+c会发出该信号,效果类似SIGTERM
SIGKILL: 9, 进程立刻退出,不能被忽略

进程对信号的处理方式:
1) 进程退出
2) 忽略信号,继续执行
3) 调用信号处理函数

1.2 进程异常退出如何排查程序错误?

1) 查看日志,调试时输出日志非常重要,方便排查错误                             
2) gdb调试coredump文件                                                      
3) 思考程序运行时的环境,运行方式的可能影响,改变运行方式看能否复现错误       
4) 看源码                                                                   

coredump文件如何产生和调试?
linux默认不允许coredump,可能需要使用root权限更改下core文件的大小限制
a) ulimit -c 查看core文件容量限制,若为0,改为 unlimited: ulimit -c unlimited
b) 指定core文件的输出路径和文件名的格式:
echo “path/file” > /proc/sys/kernel/core_pattern
file可使用core-%e-%u-%g-%h-%p-%s-%t
%e: 程序文件名
%u: 用户名
%g: 用户组
%h: 主机名
%p: 进程ID
%s: 导致本次core dump的信号
%t: core dump的时间(离1970.01.01:00:00:00的秒数)
c) g

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值