一、&方式

Unix/Linux下一般想让某个程序在后台运行,很多都是使用 & 在程序结尾来让程序自动运行。比如我们要运行mysql在后台:

/usr/local/mysql/bin/mysqld_safe --user=mysql &

二、nohup方式

 但是我们很多程序并不象mysqld一样可以做成守护进程,可能我们的程序只是普通程序而已,一般这种程序即使使用 & 结尾,如果终端关闭,那么程序也会被关闭。为了能够后台运行,我们需要使用nohup这个命令,比如我们有个start.sh需要在后台运行,并且希望在后台能够一直运行,那么就使用nohup:

nohup /root/start.sh &

在shell中回车后提示:

[~]$ appending output to nohup.out

原程序的的标准输出被自动改向到当前目录下的nohup.out文件,起到了log的作用。

nohup问题:

但是有时候在这一步会有问题,当把终端关闭后,进程会自动被关闭,察看nohup.out可以看到在关闭终端瞬间服务自动关闭。

有个操作终端时的细节:当shell中提示了nohup成功后还需要按终端上键盘任意键退回到shell输入命令窗口,然后通过在shell中输入exit来退出终端;而我是每次在nohup执行成功后直接点关闭程序按钮关闭终端。所以这时候会断掉该命令所对应的session,导致nohup对应的进程被通知需要一起shutdown。

这个细节有人和我一样没注意到,所以在这儿记录一下了。

附:nohup命令参考

nohup 命令

  用途:不挂断地运行命令。

  语法:nohup Command [ Arg ... ] [ & ]

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

  无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。如果没有文件能创建或打开以用于追加,那么 Command 参数指定的命令不可调用。如果标准错误是一个终端,那么把指定的命令写给标准错误的所有输出作为标准输出重定向到相同的文件描述符。

  退出状态:该命令返回下列出口值:

  126 可以查找但不能调用 Command 参数指定的命令。

  127 nohup 命令发生错误或不能查找由 Command 参数指定的命令。

  否则,nohup 命令的退出状态是 Command 参数指定命令的退出状态。

  nohup命令及其输出文件

  nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂起的意思( n ohang up)。

  该命令的一般形式为:nohup command &

  使用nohup命令提交作业

  如果使用nohup命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件:

  nohup command > myout.file 2>&1 &

  在上面的例子中,输出被重定向到myout.file文件中。

  使用 jobs 查看任务。

  使用 fg %n 关闭。

  另外有两个常用的ftp工具ncftpget和ncftpput,可以实现后台的ftp上传和下载,这样就可以利用这些命令在后台上传和下载文件了。

nohup-真正的Shell后台运行相关推荐

  1. shell:后台运行amp;,日志重定向输出,nohup,grep命令

    后台运行命令 在命令行加上&,表示进程到后台执行,如 cmd & 日志输出重定向命令,如 cmp > out.log & Linux默认定义两个变量:1和2; 1表示标准 ...

  2. linux 将任务挂到后台,linux下使用screen或则nohup将任务放到后台运行

    1.简介 Screen是一款由GNU计划开发的用于命令行终端切换的自由软件.用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换.GNU Screen可以看作是窗口管理器的命令行界面 ...

  3. python任务提交shell后台运行命令

    深度学习在xshell上训练网络模型往往会花费非常久的时间,而在shell上提交训练任务后,关闭电脑的话,程序也会随之中断结束,非常受约束.那么怎么才能够让程序在后台运行,电脑随便关机重启呢? 在sh ...

  4. 利用screen和nohup让Linux服务器后台运行程序

    很多同学都是通过远程连接服务器主机.有时候想要在断开连接后,还要程序在后台运行,可以用到以下技巧.共有两种方法: 1 screen 命令 screen 创建新窗口 screen -S name 和上面 ...

  5. 矩池云上使用nohup和让任务后台运行

    1.nohup 用途:不挂断地运行命令. 语法:nohup Command [ Arg - ] [ & ] 无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup ...

  6. linux shell后台运行

    当用bash启动一个程序,你可以用在程序后加&,实现程序在后台运行: 例如: watch df -i & 但如果你忘了输入&:但你又不想把程序停止后重新启动: 你可以这么做: ...

  7. linux后台运行python程序 nohup不挂断

    nohup python3 -u test.py > out.log 2>&1 & 或者 nohup sh **.sh > /dev/null 2>&1 ...

  8. linux 后台运行jar包命令,Linux 运行jar包命令(Cent OS 7后台运行jar包)

    Linux 运行jar包命令如下: 方式一 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? 方式二 java -jar shareniu. ...

  9. linux 命令 抛后台,在后台运行Linux命令的方法

    通常情况下,当你在终端运行一个命令,在你开始输入另外一个命令之前,你必须等待当前命令运行结束.这被称为在前台运行命令,或者前台进程.当一个进程在前台运行时,它占用了你的 shell,并且你可以通过输入 ...

最新文章

  1. 接口性能优化技巧,干掉慢代码!
  2. ON DUPLICATE KEY UPDATE 用法与说明
  3. 天牛须matlab,基于天牛须搜索算法(BAS)优化BP神经网络的权值阈值代码
  4. 光大代付支付有问题解决思路
  5. 小米商场html幻灯片代码,小米商城商品详情页布局(HTML代码太长贴不上去,只能贴jQuery代码)...
  6. ROS2机器人笔记20-08-15
  7. Matlab-16QAM调制与解调 16-QAM星座点图 16-QAM在AWGN信道下的误码率和误比特率性能,仿真值与理论值曲线对比图
  8. matlab eval函数代替,matlab eval函数用法
  9. python海贼王logo_中年大叔学编程-Python下载海贼王漫画图片
  10. 计算机应用程序是啥意思,为什么某些Mac应用程序需要“使用辅助功能控制此计算机?...
  11. VMWare 文件格式详解 .VMX .VMSD .VMDK
  12. 【spark】RDD-API
  13. 建模新手使用Maya的xGen功能后,角色毛发顺滑堪比使用海飞丝!
  14. DayDayUp:上海地铁线路高清图、1~17号地铁线路各站点名称及对应路线集合之详细攻略
  15. python3爬虫下载音乐_python3爬虫:下载网易云音乐排行榜
  16. ABP VNext学习日记7
  17. windows 创建密码重置盘,防止忘记密码
  18. 在微信公众号后台进行基本配置时遇到系统发生错误,请稍后重试、token验证失败、请求URL超时的解决办法
  19. 编写AIC工艺参数计算Matlab程序(疯狂踩坑)
  20. 20220103英语学习

热门文章

  1. yii表单ajax验证,yii2 modal弹窗之ActiveForm ajax表单异步验证
  2. javascript变量提前声明
  3. java 实例变量初始化_java学习之实例变量初始化
  4. java 64位 默认分配内存大小_查看你机器中Java程序堆内存的默认初始大小和最大大小...
  5. python时间计算_python利用datetime模块计算时间差、当前时间多加一天、一小时、一分钟和常用操作...
  6. python数字图像处理(17):边缘与轮廓
  7. Java的标签--弱化的goto
  8. intellij idea使用的准备工作
  9. 走向DBA[MSSQL篇] 从SQL语句的角度 提高数据库的访问性能
  10. 有哪些好的 LaTeX 编辑器?