• nohup后台运行程序


    问题描述:

    打开终端,使用nohup后台启动服务之后,只要关掉终端,服务就down了

    期望结果:

    关掉终端后,服务依然后台保持运行

    技术分析:

    Unix/Linux下一般想让某个程序在后台运行,很多都是使用&在程序结尾来让程序自动运行;但如果要想在退出终端后,程序依然还在后台运行,则要用nohup与&组合来实现。

    nohup 命令

    用途:不挂断地运行命令

    语法:nohup Command [选项 参数]  &

    描述:nohup 命令运行由 Command参数和任何相关的Arg参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序:要运行后台中的 nohup 命令,需要添加&到命令的尾部。

    日志记录:

    无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的nohup.out 文件中。如果当前目录的nohup.out文件不可写,输出重定向到$HOME/nohup.out文件中。如果没有文件能创建或打开以用于追加,那么 Command 参数指定的命令不可调用。

    使用时注意:

    在当shell中提示了nohup成功后,还需要按终端上键盘任意键退回到shell输入命令窗口,然后通过在shell中输入exit来退出终端;如果在nohup执行成功后直接点关闭程序按钮关闭终端的话,这时候会断掉该命令所对应的session,导致nohup对应的进程被通知需要一起shutdown,起不到关掉终端后调用程序继续后台运行的作用

    nohup的其它一些使用命令

    ctrl + z 可以将一个正在前台执行的命令放到后台,并且处于暂停状态。 Ctrl+c 终止前台命令。 jobs 查看当前有多少在后台运行的命令。

    jobs -l选项可显示所有任务的PID,jobs的状态可以是running, stopped, Terminated。但是如果任务被终止了(kill),shell 从当前的shell环境已知的列表中删除任务的进程标识。

    简单的说就是:

    1. nohup Command >run.log & 
    2. 回车
    3. 输入exit命令退出终端
    4. 关闭shell

    参考文档:nohup+命令+& 【退出终端后,程序依然在后台运行】

  • 相关阅读:
    判断进程是64bit还是32bit
    判断是否是64位系统(之前那个是判断是否是64位进程不一样。注意区分)
    以程序的方式操纵NTFS的文件权限
    Windows平台内核级文件访问
    TLSAlloc()
    Android开发效率的小技巧
    二分查找法
    unittest 框架
    ASP.NET MVC中使用Ninject
    Java内存区域与内存溢出异常
  • 原文地址:https://www.cnblogs.com/kaerxifa/p/13683506.html
Copyright © 2020-2023  润新知