• Linux后台运行命令nohub输出pid到文件(转)


    用nohup可以启动一个后台进程。让一个占用前台的程序在后台运行,并静默输出日志到文件:

    nohup command > logfile.txt &

    但是如果需要结束这个进程,一般做法是用ps命令找出这个进程,用grep过滤进程名,最后得到pid,然后再用kill命令结束进程:

    ps -ax | grep command  # 查看PID
    kill -9 [PID] # 结束PID对应的进程

    有一个更简单的办法是,在用nohup创建进程时,就用shell的特殊变量$!把最后一个后台进程的PID保存下来:

    nohup command > logfile.txt & echo $! > pidfile.txt

    需要结束进程的时候,直接进行kill:

    kill -9 `cat pidfile.txt`

    附:Shell中的特殊变量说明

    变量说明
    $$ Shell本身的PID(ProcessID)
    $! Shell最后运行的后台Process的PID
    $? 最后运行的命令的结束代码(返回值)
    $- 使用Set命令设定的Flag一览
    $* 所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
    $@ 所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。
    $# 添加到Shell的参数个数
    $0 Shell本身的文件名
    $1~$n 添加到Shell的各参数值。$1是第1参数、$2是第2参数…。

    参考:

    http://www.jianshu.com/p/5a04e2452e3f(以上内容转自此篇文章)

  • 相关阅读:
    事务隔离级别
    手机摄影之生活拍照技巧
    html.unescape(s)
    正则表达式编译和DOTALL小结
    重试模块==>retrying
    js逆向==>js2py
    mysql索引设计原则
    Django请求与响应
    Linux常用命令
    C++11 auto_ptr 的问题
  • 原文地址:https://www.cnblogs.com/EasonJim/p/7750298.html
Copyright © 2020-2023  润新知