Linux后台运行任务 nohup &
Linux后台运行任务 nohup &#
& 不中断#
&
表示在后台执行命令,没有办法通过Ctrl+C
结束命令,但是可以通过关闭终端来杀掉进程。
nohup 不挂起#
nohup
命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup
命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup
就是不挂起的意思( no hang up)
在我们关闭session时会发出SIGHUP信号,终端里运行的程序会结束,如果想要忽略SIGHUP信号,就需要在命令前增加nohup命令,此时关闭session后命令会继续执行。
此时会忽略输入,并将输出重定向到nohup.out
,当然,你可以使用管道符自定义输出文件
这样就将输出重定向到myout.file,redirecting stderr to stdout的意思是告诉你标准错误也会重定向到标准输出。当然,你也可以自己将标准错误重定向到输出,这样就不会有警告。
对于2 ,表示标准错误,stderr。
对于&1 更准确的说应该是文件描述符 1,而1标识标准输出,stdout。
结合nohup和&#
很多时候单独的nohup
并不能满足我们的需求,你会发现在执行上面的命令只能等待任务执行完,在此之前任何输入都没有用除非新开个终端,所以nohup
经常和&
一起用。
此时程序在后台运行,你可以继续执行其他操作,而且关闭终端也不会影响任务的执行。
我们可以通过jobs -l
来显示任务列表及状态,其中-l
是显示进程号。但是jobs命令只对当前终端生效,当我们重新打开终端后jobs就不能显示任务状态了,此时只能用ps
命令查看当前进程。
其中29979就是进程ID,15965是父进程ID,如果要结束某个进程,可以使用kill
命令
kill -9 ID
总结#
&
会在后台执行,忽略Ctrl+C的SIGINT信号
nohup
会忽略关闭session的SIGHUP信号
一般同时使用nohup+&
作者: lepeCoder
出处:https://www.cnblogs.com/lepeCoder/p/nohup_.html
版权:本站使用「CC BY 4.0」创作共享协议,转载请在文章明显位置注明作者及出处。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术