我经常需要在编程期间杀死进程.
我现在这样做的方式是:
[~]$ 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) 在bash脚本中,我想执行以下操作(在伪代码中):
if [ a process exists with $PID ]; then
kill $PID
fi
Run Code Online (Sandbox Code Playgroud)
条件语句的恰当表达式是什么?
我想通过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) 我正在尝试构建一个在 Web 服务器上运行单元测试的 bash 脚本。
我希望运行一个简单的 bash 脚本,该脚本可以(例如)在 makefile 中执行以下操作:
假设 Web 服务器是为 NodeJS 编写的,它可能如下所示:
npm start &
sleep 5
npm test
Run Code Online (Sandbox Code Playgroud)
这种方法的问题是 Web 服务器将继续运行。舞台结束后如何停止npm test?