gpt4 book ai didi

linux - 命令输出、管道、脚本联动

转载 作者:太空宇宙 更新时间:2023-11-04 11:16:11 25 4
gpt4 key购买 nike

我正在编写一个小脚本来重启我的 lighttpd 服务器:1. kill已经运行的进程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 输出是<强>根 11685 0.0 0.0 11096 1960 ? S 16:40 0:00 lighttpd -f/etc/lighttpd/lighttpd.conf

最佳答案

为什么你在 Linux/unix 中浪费时间来 grepping PID 并在你有 killall 命令时杀死它

/usr/bin/killall

可以直接

killall lighttpd/usr/bin/killall lighttpd

如果不是 super 用户则使用 sudo

sudo killall lighttpdsudo/usr/bin/killall lighttpd

最好将 -9killall 一起使用,就像在您的情况下是 sudo killall lighttpd

然后通过

重新启动它

sudo lighttpd -f/etc/lighttpd/lighttpd.conf

如果您正在寻找完全自动化的脚本,请使用 except 命令 Click here

关于linux - 命令输出、管道、脚本联动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20861451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com