我经常需要在编程期间杀死进程.
我现在这样做的方式是:
[~]$ ps aux | grep 'python csp_build.py'
user 5124 1.0 0.3 214588 13852 pts/4 Sl+ 11:19 0:00 python csp_build.py
user 5373 0.0 0.0 8096 960 pts/6 S+ 11:20 0:00 grep python csp_build.py
[~]$ kill 5124
Run Code Online (Sandbox Code Playgroud)
如何自动提取进程ID并在同一行中终止它?
像这样:
[~]$ ps aux | grep 'python csp_build.py' | kill <regex that returns the pid>
Run Code Online (Sandbox Code Playgroud) 假设我想杀死包含amarok这个词的每个进程.我可以打印出我想要执行的命令.但是我如何实际让shell执行它们.即.
ps aux | grep -ie amarok | awk '{print "kill -9 " $2}'
Output:
kill -9 3052
kill -9 3071
kill -9 3076
kill -9 3077
kill -9 3079
kill -9 3080
kill -9 3082
kill -9 3083
kill -9 3084
kill -9 3085
kill -9 3086
kill -9 3087
kill -9 3088
kill -9 3089
kill -9 4031
Run Code Online (Sandbox Code Playgroud) 我有许多使用不同 jar 文件运行的 java 进程。我想杀死显式 jar 文件进程。
以下命令无法成功运行:
sudo kill $(ps -ef | grep example.jar | awk '{print $2}')
它找到了正确的 PID,但无法杀死它。
我想通过shell脚本来杀死进程,它给了我错误.这是我到目前为止所尝试的:
当我试图杀死MEMCACHE它给我的错误,如"杀:没有这样的过程",我用下面的命令:
ps -ef | grep "memcache" | awk '{print $2}' | xargs kill;
Run Code Online (Sandbox Code Playgroud)
或者如果尝试如下:
kill -9 $(pidof memcache)
Run Code Online (Sandbox Code Playgroud)
我得到如下错误:":参数必须是进程或作业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
Run Code Online (Sandbox Code Playgroud)
我REFF到https://askubuntu.com/questions/239923/shell-script-to-9-kill-based-on-name 和 shell脚本来捕获进程ID,如果存在杀死它
我的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 …Run Code Online (Sandbox Code Playgroud)