在 Debian(及其他 Linux 发行版)上,进程自动退出的原因非常多,一般可以从下面几个方向来排查。
exit(0)exit✅ 排查:
systemctl status 服务名
journalctl -u 服务名
✅ 查看错误:
journalctl -xe
或
./程序 2>&1 | less
非常常见
当内存不足时,Linux 的 OOM Killer 会杀掉占用内存最多的进程。
✅ 检查是否被 OOM 杀掉:
dmesg | grep -i "killed process"
或
grep -i oom /var/log/syslog
特征:
Out of memory如果是 systemd 服务,可能配置了:
Restart=no
或
Type=oneshot
✅ 正确示例:
[Service]
Restart=always
ldd 程序
如果有 not found,进程会立刻退出。
✅ 查看:
aa-status
如果是:
./程序 &
然后关了 SSH,进程可能跟着退出。
✅ 解决:
nohup ./程序 &
或
screen
tmux
常见信号:
SIGTERM(systemctl stop)SIGHUP(终端断开)SIGSEGV(段错误)✅ 查看:
strace -f ./程序
是不是服务?
systemctl status xxx
journalctl -u xxx
是不是被系统杀?
dmesg | grep -i kill
是不是配置/参数问题? 手动运行看报错
是不是内存爆了?
free -h
你可以补充:
我可以直接帮你分析具体原因。