V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
verfino
V2EX  ›  程序员

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

  •  
  •   verfino ·
    helix-dan · 2013 年 4 月 17 日 · 4424 次点击
    这是一个创建于 4659 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Node没有类似stop的命令(不像Node的forever工具,可以通过stop来关闭)

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

    通过这样来关闭Node进程

    不知道大家有没有什么更优雅的方法啊
    7 条回复    1970-01-01 08:00:00 +08:00
    yangg
        1
    yangg  
       2013 年 4 月 17 日   ❤️ 1
    pgrep node | xargs -i kill {}
    LazyZhu
        2
    LazyZhu  
       2013 年 4 月 17 日   ❤️ 1
    leohxj
        3
    leohxj  
       2013 年 4 月 17 日 via iPhone
    借楼问下,为什么我在VPS上用&后台运行一个node(express app.js)程序,然后我logout之后这个进程就不存在了?项目就访问不了了
    enotey
        4
    enotey  
       2013 年 4 月 17 日 via Android   ❤️ 1
    @leohxj nohup
    duhastmich
        5
    duhastmich  
       2013 年 4 月 18 日   ❤️ 1
    node app.js & echo $! > app.pid
    verfino
        6
    verfino  
    OP
       2013 年 4 月 18 日
    @yangg 感谢!这个方法至少比我的优雅.... 我现在是根据关键字查找父进程,然后kill掉父进程
    具体实现是
    ps ax | grep "node my_app.js" | grep -v "grep" | awk '{print $1}' | xargs kill -9

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

    @duhastmich 感谢,看了上述答案,最终还是要跟你这个方案考虑.... PID比定位关键字更加准确
    halfbloodrock
        7
    halfbloodrock  
       2013 年 4 月 18 日
    建议使用标准kill信号,kill PID,或者kill -15 PID。kill -9杀死进程方式太暴力,可能出现不释放资源的问题。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   865 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 19:55 · PVG 03:55 · LAX 11:55 · JFK 14:55
    ♥ Do have faith in what you're doing.