排查导致SSSD服务每1分50秒自动重启的进程
排查导致SSSD服务每1分50秒自动重启的进程
遇到这种同步定时重启的情况确实挺闹心的,我给你分享几个实战排查步骤,帮你揪出触发重启的进程:
先从systemd日志挖细节
既然你已经看到stop-sigterm的提示,咱们可以用更详细的日志格式追踪SSSD的终止事件:journalctl -u sssd.service -f -o verbose这个命令会实时输出SSSD服务的详细日志,包括发送SIGTERM信号的进程PID、UID甚至进程名称,这是最直接的线索来源。
用auditd监控kill信号
如果systemd日志没给够信息,auditd是抓进程信号的利器。先确保auditd已安装并启动,然后添加监控规则:auditctl -a exit,always -F arch=b64 -S kill -F comm=sssd等待一次重启后,用下面的命令查看审计记录:
ausearch -i -k sssd_kill记录里会明确显示哪个进程给SSSD发了终止信号,连进程的启动路径都能查到。
排查定时任务/定时器
固定间隔的重启大概率和定时任务有关,咱们逐一排查:- 检查所有用户的crontab:
crontab -l(切换到不同用户执行),同时查看系统级cron目录:ls -la /etc/cron* /var/spool/cron/ - 检查systemd定时器:
systemctl list-timers --all,看看有没有间隔接近1分50秒的定时器,或者关联的服务是操作SSSD的。
- 检查所有用户的crontab:
用strace追踪信号来源
要是前面的方法都没找到,咱们直接给SSSD主进程挂strace,抓信号接收的瞬间:- 先获取SSSD主进程PID:
pidof sssd - 启动strace追踪信号:
strace -p <SSSD_PID> -e signal
当SSSD收到SIGTERM时,strace会输出信号的发送者PID,你再用
ps -p <发送者PID> -f就能看到这个进程的详细信息了。- 先获取SSSD主进程PID:
检查FreeIPA客户端相关脚本
别忘了看看有没有FreeIPA客户端的自动配置脚本在搞事情:- 检查
/etc/sssd/sssd.conf里有没有异常的超时、重启相关配置 - 排查
/etc/cron.d/、/etc/cron.hourly/等目录下的脚本,有没有执行systemctl restart sssd之类的命令
- 检查
备注:内容来源于stack exchange,提问作者dutsnekcirf
相关产品推荐
相关产品推荐

