我试图找出为什么这不起作用:
\n\n#!/bin/bash\n\nsudo sleep 60 &\nsudo_pid=$!\nsudo kill $sudo_pid\nRun Code Online (Sandbox Code Playgroud)\n\n我希望在之后kill,sudo命令及其子sleep进程将被终止,但它们没有,如以下脚本所示:
#!/bin/bash\n\nsudo sleep 60 &\nsudo_pid=$!\nsudo kill $sudo_pid\n\nif ps -p $sudo_pid > /dev/null; then\n sudo kill $sudo_pid\nelse\n echo "No sudo process running"\n exit 1\nfi\n\nif ps -p $sudo_pid > /dev/null; then\n echo "sudo (pid $sudo_pid) is still running"\n ps -F $sudo_pid\nelse\n echo "sudo successfully killed"\nfi\nRun Code Online (Sandbox Code Playgroud)\n\n当我运行它时会产生以下输出(带有sudo缓存的信用):
jon@ubuntu:~$ ./so.sh \nsudo (pid 46199) is still running\nUID PID PPID C SZ RSS PSR STIME TTY …Run Code Online (Sandbox Code Playgroud)