当我想做一些需要 sudo privelegies 的事情时,构建过程会卡住,而ps aux
对于该命令,它会挂在列表中但什么也不做。
例如:
在构建脚本中:
# stop nginx
echo "INFO: stopping nginx. pid [$(cat /opt/nginx/logs/nginx.pid)]"
sudo kill $(cat /opt/nginx/logs/nginx.pid)
在 gitlab ci 输出控制台中:
INFO: stopping nginx. pid [2741]
kill $(cat /opt/nginx/logs/nginx.pid) # with a spinning wheel
在 bash 中:
> ps aux | grep nginx
root 6698 0.0 0.1 37628 1264 ? Ss 19:25 0:00 nginx: master process /opt/nginx/sbin/nginx
nobody 6700 0.3 0.3 41776 3832 ? S 19:25 0:00 nginx: worker process
kai 7015 0.0 0.0 4176 580 pts/0 S+ 19:27 0:00 sh -c sudo kill $(cat /opt/nginx/logs/nginx.pid)
kai 7039 0.0 0.0 7828 844 pts/2 S+ 19:27 0:00 grep nginx
所以:
- 不是
sudo kill $(cat /opt/nginx/logs/nginx.pid)
要执行,而是sh -c sudo kill $(cat /opt/nginx/logs/nginx.pid)
- 它挂断了,没有响应(对我来说听起来像是交互式地要求输入密码)