我正在编写一个小脚本来重启我的lighttpd服务器: 杀死已经运行的进程 2.启动新服务器
脚本如下:
PID=$(ps aux | grep lighttpd | grep -v grep | cut -c9-15)
kill $PID
sudo lighttpd -f /etc/lighttpd/lighttpd.conf
我的问题是在终端窗口中输入命令
ps aux | grep lighttpd | grep -v grep | cut -c9-15
给出结果: 11685 ,但如果它在shell脚本中运行,则结果为 11685 13339 13340
我在这里缺少什么?
包含lighttpd作业的行的ps输出是 root 11685 0.0 0.0 11096 1960? S 16:40 0:00 lighttpd -f /etc/lighttpd/lighttpd.conf
答案 0 :(得分:1)
为什么你在Linux / unix中浪费时间来贪图PID并在你有killall命令时杀死它
/usr/bin/killall
你可以直接
killall lighttpd
或/usr/bin/killall lighttpd
如果不是超级用户则使用sudo
sudo killall lighttpd
或sudo /usr/bin/killall lighttpd
可以优先使用-9
与killall
一样sudo killall lighttpd
然后通过
重新启动它 sudo lighttpd -f /etc/lighttpd/lighttpd.conf
如果您正在寻找完全自动化的脚本,请使用except
命令
Click here