我正在使用单声道asp.net网站的Rake自动部署到带有nginx的ubuntu服务器。
据我发现 fastcgi-mono-server4.exe 无法正常停止,必须终止。我目前在 htop 中手动执行此操作。我如何从 rake 或 shell 中做到这一点?
我只有几个小时的 rake 和 ruby 经验以及几周的 linux 经验,但已经取得了很大进展,但是即使是像这样可能很明显的事情,我也无法做到。
我正在使用单声道asp.net网站的Rake自动部署到带有nginx的ubuntu服务器。
据我发现 fastcgi-mono-server4.exe 无法正常停止,必须终止。我目前在 htop 中手动执行此操作。我如何从 rake 或 shell 中做到这一点?
我只有几个小时的 rake 和 ruby 经验以及几周的 linux 经验,但已经取得了很大进展,但是即使是像这样可能很明显的事情,我也无法做到。
要在 Linux 中查找正在运行的单声道进程 ID:
ps ax | grep mono
这会给你类似的东西:
user 1452 0.0 0.0 9396 876 pts/4 S+ 17:33 0:00 grep mono
user 2810 98.2 16.1 967424 330432 ? Sl Mar30 7866:50 /usr/bin/mono /usr/lib/mono/4.0/fastcgi-mono-server4.exe --appconfigdir /etc/init.d/mono-fastcgi /socket=tcp:127.0.0.1:9000 /logfile=/var/log/mono/fastcgi.logappconfigdir /etc/init.d/mono-fastcgi /socket=tcp:127.0.0.1:9000 /logfile=/var/log/mono/fastcgi.log
第二列包含您可以杀死的进程ID:
sudo kill -9 2810
感谢@Yevgeniy评论,您可以使用 grep 字符类从 ps 输出中排除 grep ,如this question中所述,例如:
ps aux | grep [m]ono
这将从 ps 输出中排除 grep 进程,并为您提供如下内容:
2810 ? Sl 7861:07 /usr/bin/mono /usr/lib/mono/4.0/fastcgi-mono-server4.exe --appconfigdir /etc/init.d/mono-fastcgi /socket=tcp:127.0.0.1:9000 /logfile=/var/log/mono/fastcgi.log
现在这意味着如果你只有一个单声道运行进程,你现在可以用这个 1-liner 杀死它:
sudo kill -9 $(ps aux | grep '[m]ono' | awk '{print $2}')