如何用Linux shell写一个关闭Node进程的脚本?

2013-04-17 17:58:22 +08:00
 verfino
Node没有类似stop的命令(不像Node的forever工具,可以通过stop来关闭)

现在的解决办法是 ps -ef | grep -i node
找到node的父进程
然后kill -9 进程号

通过这样来关闭Node进程

不知道大家有没有什么更优雅的方法啊
3862 次点击
所在节点    程序员
7 条回复
yangg
2013-04-17 18:33:34 +08:00
pgrep node | xargs -i kill {}
LazyZhu
2013-04-17 18:45:42 +08:00
leohxj
2013-04-17 21:28:39 +08:00
借楼问下,为什么我在VPS上用&后台运行一个node(express app.js)程序,然后我logout之后这个进程就不存在了?项目就访问不了了
enotey
2013-04-17 21:39:47 +08:00
@leohxj nohup
duhastmich
2013-04-18 08:40:10 +08:00
node app.js & echo $! > app.pid
verfino
2013-04-18 09:39:02 +08:00
@yangg 感谢!这个方法至少比我的优雅.... 我现在是根据关键字查找父进程,然后kill掉父进程
具体实现是
ps ax | grep "node my_app.js" | grep -v "grep" | awk '{print $1}' | xargs kill -9

@LazyZhu 感谢!还是自己Google 的关键词没对,不过这里面的方法跟我一样不优雅,哈哈哈

@duhastmich 感谢,看了上述答案,最终还是要跟你这个方案考虑.... PID比定位关键字更加准确
halfbloodrock
2013-04-18 09:55:56 +08:00
建议使用标准kill信号,kill PID,或者kill -15 PID。kill -9杀死进程方式太暴力,可能出现不释放资源的问题。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/66126

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX