我想通过Shell脚本杀死进程,但是它给我返回了错误。以下是我迄今为止尝试过的:
当我尝试杀死memcache时,它会返回"kill: No such process"的错误,我使用了以下命令:
ps -ef | grep "memcache" | awk '{print $2}' | xargs kill;
或者如果尝试像下面这样:
kill -9 $(pidof memcache)
我遇到了以下错误:“参数必须是进程或作业 ID”,在命令提示符上直接运行时,进程正在运行。
ring@ubuntu:~/parasol$ ps aux | grep memcache
memcache 873 0.0 0.0 323220 1188 ? Sl 22:56 0:00 /usr/bin/memcached -m 64 -p 11211 -u memcache -l 127.0.0.1
ring 1714 0.0 0.0 9384 920 pts/0 S+ 23:45 0:00 grep --color=auto memcache
我参考了https://askubuntu.com/questions/239923/shell-script-to-9-kill-based-on-name和Shell script to capture Process ID and kill it if exist。
我的Ubuntu版本:
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=12.04
DISTRIB_CODENAME=precise
DISTRIB_DESCRIPTION="Ubuntu 12.04.2 LTS"
NAME="Ubuntu"
VERSION="12.04.2 LTS, Precise Pangolin"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu precise (12.04.2 LTS)"
VERSION_ID="12.04"
pidof memcache
或者ps -ef | grep "memcache" | awk '{print $2}'
命令,结果如何?看起来不错。 - keltarps -ef | grep memcache
会给出两行结果。因此,你可以这样做:ps -ef | grep memcache | grep -v "grep" | awk '{print $2}' | xargs kill;
- Ashishps -ef | grep gnome-terminal | grep -v "grep" | awk '{print $2}'
命令,并获得了PID 2803。 - Ashish