我有一个使用 fork 的程序。在子进程中,我只需登录到远程服务器并执行命令。在父进程中,我等待子进程完成其任务。如果它没有在预定的时间内完成它,我使用 kill(child_pid, SIGTERM) 杀死子进程。但是我注意到这会留下僵尸进程,例如
93113 s000 Z+ 0:00.00 (ssh)
并且随着超时的增加,僵尸进程也会增加,最终无法再使用 ssh。
我怎样才能杀死子进程而不产生困扰我的僵尸?
我有一个使用 fork 的程序。在子进程中,我只需登录到远程服务器并执行命令。在父进程中,我等待子进程完成其任务。如果它没有在预定的时间内完成它,我使用 kill(child_pid, SIGTERM) 杀死子进程。但是我注意到这会留下僵尸进程,例如
93113 s000 Z+ 0:00.00 (ssh)
并且随着超时的增加,僵尸进程也会增加,最终无法再使用 ssh。
我怎样才能杀死子进程而不产生困扰我的僵尸?