seg*_*a01 22 linux kill process
在 Linux 环境中,如何向进程发送终止信号,同时确保从该进程返回的退出代码为 0?我是否必须为此做一些花哨的 GDB 魔术,或者是否有我不知道的花哨的终止信号?
测试用例:
cat; echo $?
killall cat
Run Code Online (Sandbox Code Playgroud)
尝试各种终止信号只会提供不同的返回信号,例如 129、137 和 143。我的目标是终止脚本运行的进程,但让脚本认为它成功了。
小智 25
您可以使用 GDB 和进程 ID 附加到进程,然后将call命令exit(0)作为参数发出。
call允许您在正在运行的程序中调用函数。调用exit(0)退出,返回码为 0。
gdb -p <process name>
....
.... Gdb output clipped
(gdb) call exit(0)
Program exited normally.
Run Code Online (Sandbox Code Playgroud)
作为单行工具:
gdb --batch --eval-command 'call exit(0)' --pid <process id>
Run Code Online (Sandbox Code Playgroud)