1

我正在使用单声道asp.net网站的Rake自动部署到带有nginx的ubuntu服务器。

据我发现 fastcgi-mono-server4.exe 无法正常停止,必须终止。我目前在 htop 中手动执行此操作。我如何从 rake 或 shell 中做到这一点?

我只有几个小时的 rake 和 ruby​​ 经验以及几周的 linux 经验,但已经取得了很大进展,但是即使是像这样可能很明显的事情,我也无法做到。

4

1 回答 1

1

要在 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

使用字符类从 ps 输出中排除 grep

感谢@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}')
于 2013-04-04T13:44:07.590 回答