我正在使用单声道asp.net网站的Rake自动部署到使用nginx的ubuntu服务器。
据我所知,fastcgi-mono-server4.exe无法正常停止,必须终止。我目前在htop手动执行此操作。我如何从rake或shell中做到这一点?
我只有几个小时的经验与rake& ruby和几个星期的linux已经取得了很大的进步,但是有些事情甚至可能会让我明白这样的事情。
答案 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
感谢@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}')