nohup-真正的Shell后台运行

《自拍教程52》Python adb运行Shell脚本 Android作为一款Linux终端,肯定是支持.sh后缀的Shell脚本的运行的, 有时候测试环境准备或者长时间截取复杂的日志等,开发会给到一些Shell脚本。 Shell脚本的执行的优势: 快捷高效,Shell脚本是Linux终端都支持的。 由于执行及测试结果都在Linux终端内部存储,不会出现因为反复通过USB与Windows电脑进行输入输出导致的Android系统的I/O CPU消耗过... 阅读详情

nohup-真正的Shell后台运行

 

转自:http://blog.chinaunix.net/uid-446337-id-94446.html

 

一、&方式
 
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上传和下载,这样就可以利用这些命令在后台上传和下载文件了。

 

 

 

如何让一个 shell 脚本后台运行?(nohup、&) 场景推荐方案优点临时测试快速简单长期运行systemd服务完善的生命周期管理多任务管理可视化操作关键业务进程自动重启+监控更多面试题:duoke360.com/tutorial/iv-linuxgraph TDA[需要后台运行] --> B{是否需要持久化}B -->|是| C{生产环境?B -->|否| D[使用 & 即可]C -->|是| E[使用systemd服务]C -->|否| F[使用nohup + &] 阅读详情

相关推荐

adb shell 执行后台程序后断开adb后台进程被结束的解决办法

环境:Android 版本 Android8 通常让程序后台执行就是在命令 最后加上 &即可,但是在Android 8上实验发现,程序的确后台了,但是拔掉USB线再连接上发现进程已结束。不确定Android早期版本是否存在此问题。 参考网上一些Linux方法,如加nohup 仍然无效,还是会结束。看来Android adb shell 与 Linux shell 还是有一定区别。 后...

u013463707的专栏 1万+

《自拍教程52》Python_adb运行Shell脚本

Android作为一款Linux终端,肯定是支持.sh后缀的Shell脚本的运行的, 有时候测试环境准备或者长时间截取复杂的日志等,开发会给到一些Shell脚本。 Shell脚本的执行的优势: 快捷高效,Shell脚本是Linux终端都支持的。 由于执行及测试结果都在Linux终端内部存储,不会出现因为反复通过USB与Windows电脑进行输入输出导致的Android系统的I/O CPU消耗过大。 如何通过Python来运行Shell脚本呢? 何为高端地用Python运行Shell脚本,这里...

751

手把手教你学Simulink--基于故障诊断与容错控制的场景实例:电动汽车电机驱动系统的故障检测与隔离

本文介绍了基于Simulink的电动汽车电机驱动系统故障诊断与隔离(FDI)仿真建模方法。通过构建永磁同步电机(PMSM)驱动系统模型,实现了IGBT开路、电流传感器漂移等典型故障的注入与检测。重点阐述了基于观测器的残差生成方法,以及利用Stateflow实现的故障隔离逻辑。仿真结果表明,该系统能在85ms内准确识别故障类型,隔离准确率达97%,并支持容错控制。文章还探讨了AI故障预测、数字孪生等高级应用方向,为电动汽车电驱系统安全提供了完整的仿真解决方案。

MHD0815的博客 961

linux系统sh脚本后台执行

在 Linux 中,你可以使用 & 符号将一个脚本或命令放到后台执行。也可以使用 nohup 命令,这样即使你退出终端,该进程也会继续在后台运行。

努力奋斗 5744

2025数学建模美赛C题完整建模思路——奥运会奖牌榜的模型

2025数学建模美赛C题完整建模思路——奥运会奖牌榜的模型

Yilu264的博客 1万+

博途WinCC多语言项目配置指南

在博途(TIA Portal)中为WinCC项目配置多语言功能,需通过系统化步骤实现界面文本的动态切换。

dhaimo的博客 2469

Shell的后台运行(&)与nohup

1、&使shell脚本在后台运行,以确保父shell可以继续执行后续命令。否则就需要等待子shell执行完才能继续执行。&后的脚本,fd 0被执行/dev/null。2、nohup ,确保子shell不会收到sighup信号。sighup信号为终端关闭时给所有进程发送的sighup信号,默认动作为退出。父进程变为进程1的进程不会收到sighup信号,因为此时此进程已经与控制终端没有关联。

weixin_44376670的博客 1032

染色体外环状DNA:肿瘤研究新方向

染色体外环状DNA(ecDNA)是癌症中活化原癌基因扩增的主要方式。区别于常染色体,这类生物大分子主要以环状的形式存在于细胞核当中,长度分布在103-106数量级,无中心粒。ecDNA序列中包含一个或者多个基因与调控元件,结构开放,转录活性强,相比于在棒状染色体结构基因,ecDNA的生物功能活性更强。癌症中,成环的基因区域拷贝数往往增高,而超过一半的高拷贝数事件是ecDNA驱动生成。...

blackjimmy的博客 765

【linux】shell程序后台运行nohup和&的区别

如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用n o h u p命令。如果使用n o h u p命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,nohup.out文件缺 省写在当前目录下,如果在该目录下无写权限,则试图写到$HOME/nohup.out中,如果仍然失败,整个命令执行失败。&则让命令在后台运行,至于该命令是否能在脱离终端后继续执行则要看进程是否是守护进程,如果不是,则需要nohup来帮忙。使用nohup命令提交作业。

我的笔记本 3396

ZYNQ实战:PS端驱动DMA实现高效数据流转与验证

本文详细介绍了在ZYNQ平台上通过PS端驱动DMA实现高效数据流转的实战方法。从ZYNQ的PS与PL数据交互基础出发,深入解析DMA核心价值,包括硬件平台搭建、Vivado配置、PS端软件架构设计及性能优化技巧,帮助开发者提升数据传输效率与系统性能。

weixin_29192141的博客 432

结构光三维重建2——多频外差解包裹

本文深入解析了结构光三维重建中的多频外差解包裹技术。针对四步相移法产生的相位包裹问题,该方法通过投影多组不同频率的条纹光,利用外差原理逐级解算,最终获得精确、连续的绝对相位值,是实现高精度、稳健三维重建的关键步骤。

weixin_29056101的博客 350

shell在指定目录下执行nohup_Shell的后台运行(&)与nohup

shell的后台运行(&)与nohup简述在shell脚本中当我们需要把一个任务放在后台运行时,通常我们会使用&符号:subcommand &此时主进程会继续往下执行,而子进程会在后台启动运行。于此同时,我们常会看到nohup会和后台任务一起使用,格式是:nohup subcommand &nohup在这里起了什么角色呢。nohupnohup起两个作用:正如名字所声...

weixin_39622628的博客 569

嵌入式系统开发笔记96:将STM32CubeIDE设置为中文

本文介绍将STM32CubeIDE设置为中文的方法。

snmplink的博客 8534

Shell命令之nohup: 如何做到将进程放到后台运行

命令使用场景 在使用shell窗口启动服务进程的时候,有些进程需要在关闭shell窗口的情况下依然保持运行状态 在使用shell窗口执行脚本任务的时候,有时候需要任务在后台运行,不阻碍马上使用命令行。 命令解释 nohup:运行命令,忽略挂起信号。Run COMMAND, ignoring hangup signals. 默认输出日志到 nohup.out If standard output is a terminal, append output to ‘nohup.out’ if possi

Kingsley's Blog 2408

麻辣香锅病毒分析

Spicy Hot Pot浏览器劫持病毒(麻辣香锅病毒)从2020年初被安全公司监测到,因其病毒模块带有MLXG_KM被安全行业代称麻辣香锅病毒。目前通过各种激活工具传播, 包括暴风激活、小马激活和KMS激活等诸多工具,疑似与下载站进行合作推广此类激活工具。Spicy Hot Pot 是一个浏览器劫持 Rootkit,它会将用户的主页更改为指向恶意软件操作员控制的页面,此外还会将内存转储从机器上传到预定义的服务器,并结合本地更新功能以确保其保持更新。通常浏览器劫持者会通过更改用户主页的恶意可执行文件或注册表

不忘初心,护天下安全! 4787

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

linux Shell的后台运行(&)与nohup

简述 在shell脚本中当我们需要把一个任务放在后台运行时,通常我们会使用&符号: subcommand & 此时主进程会继续往下执行,而子进程会在后台启动运行。 于此同时,我们常会看到nohup会和后台任务一起使用,格式是: nohup subcommand & nohup在这里起了什么角色呢。 nohup nohup起两个作用: 正...

wsq_zqfl的博客 904

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

nohup和&后台运行shell

nohup作用:用于linux系统中不间断的运行特定的命令程序, &作用:用于linux系统中后台去运行特定的命令程序 一般nohup会和&一起使用,用于在后台不间断的运行特定命令程序,即使推出终端,只要程序本身不报错,服务器不重启之类的,就可以一直在后台运行 nohup python /tmp/csdn.py > /tmp/log.txt 2>&1 & python /tmp/csdn.py >是我们要运行的命令 /tmp/log.txt 是我们自定.

不会写后端的前端不是一个好运维。 4352

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

nohup后台运行命令,关闭shell后进程会终止

直接关闭shell终端时,再打开shell进入服务器 ,发现进程消失。输入exit命令手动退出终端即可。

weixin_51172484的博客 1963

在UNIX上后台运行任务(Shell),bg还是nohup

有时候一个任务运行的时间很长,需要将其放在后台运行,否则推出控制台后任务就会被终止,本文讲解一下怎么让任务在后台运行。 比如一个shell脚本,longjobs.sh运行要很长时间,并且运行中有信息打印到控制台。 1,如果直接通过 ./longjobs.sh启动了任务,这时候控制台不断有信息打印出来,如果想把该任务调到后台,可以通过Ctr+z(在bash中(Linux的默认shell,如果是在...

158
上一篇: 文件工具类FileUtils的使用
下一篇: 在Ubuntu上安装Tomcat
longyi_java
博客等级 码龄20年 24粉丝 127原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值