如何从rake文件中删除fastcgi-mono-server4.exe?

时间:2013-04-04 07:18:37

标签: ruby nginx mono rake servicestack

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

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

我只有几个小时的经验与rake& ruby和几个星期的linux已经取得了很大的进步,但是有些事情甚至可能会让我明白这样的事情。

1 个答案:

答案 0 :(得分:1)

在Linux中查找正在运行的 mono 进程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字符类explained in this question从ps输出中排除grep,例如:

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}')