我有一个应该运行的脚本:
sudo command &
othercommand
我需要在运行othercommand之前完成sudo的密码提示,但上面的设置在后台运行 sudo
而不是command
IE,bash正在执行:(sudo command) &
而我喜欢sudo (command &)
我会使用sudo -b
,但这会使command
从终端分离,并且由于^C
和jobs
不会影响它,因此很难停止。< / p>
我该怎么做?
答案 0 :(得分:1)
为了能够在脚本退出时停止后台进程,例如 Ctrl - c ,您可以使用陷阱:
trap 'kill $pids' EXIT
[...]
sudo command & pids="${pids+$pids }$!"
[...]
othercommand
[...]
wait
此脚本仅在sudo
命令完成后退出或它收到终止信号,此时它将在退出前终止sudo
命令。