如何防止 cron 执行的脚本导致进程卡住

如何防止 cron 执行的脚本导致进程卡住

我有一些在 crontab 中运行的脚本,我认为这些脚本被“卡住”并且永远不会正确退出该进程。

我发现在 crontab 中拥有这些脚本的用户在“ps -aux”输出中有 4096 个进程,其中大多数都是旧的(几天或更长时间)并且可能被卡住,因为它们不应该像这样保持打开状态。因此,我在 cron 日志中收到“资源暂时不可用”错误。

我不明白的是为什么这些会陷入这样的困境。

这是我认为被卡住的一个例子

apache    6487  0.0  0.0 113176  1224 ?        Ss   Dec18   0:00 /bin/sh -c /app/www/scripts/migrate_enhanced.pl > /dev/null 2>&1
# pstree -pl 6487
sh(6487)---migrate_enhance(6489)---redshacl(6529)---ping(6530)
# cat /proc/6530/stack
[<ffffffff82c2b100>] __skb_wait_for_more_packets+0x120/0x180
[<ffffffff82c2b4cf>] __skb_recv_datagram+0x6f/0xd0
[<ffffffff82c2b573>] skb_recv_datagram+0x43/0x60
[<ffffffff82cb0999>] raw_recvmsg+0xa9/0x200
[<ffffffff82cc1220>] inet_recvmsg+0x80/0xb0
[<ffffffff82c1a4f5>] sock_recvmsg+0xc5/0x100
[<ffffffff82c1b673>] ___sys_recvmsg+0x133/0x2d0
[<ffffffff82c1cb91>] __sys_recvmsg+0x51/0x90
[<ffffffff82c1cbe2>] SyS_recvmsg+0x12/0x20
[<ffffffff82d75d9b>] system_call_fastpath+0x22/0x27
[<ffffffffffffffff>] 0xffffffffffffffff
# 

相关内容