linux 后台运行程序

本文介绍了如何在Linux系统中使程序在后台运行,即使关闭终端也能继续执行。重点讨论了nohup命令和&符号的区别,nohup可以防止程序因SIGHUP信号而终止,而&仅能防止SIGINT信号。要同时抵抗这两种信号,可以使用"nohup ./program &"。此外,还讲解了如何使用ps和kill命令管理后台进程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 在终端输入命令,使程序后台执行:

nohup ./pso > pso.log 2>&1 &

解释:nohup就是不挂起的意思,将pso直接放在后台运行,并把终端输出存放在当前

目录下的pso.log文件中。当客户端关机后重新登陆服务器后,直接查看pso.log文件就可看执行结果(命令:#cat pso.file)。

使程序在Linux下后台运行 (关掉终端继续让程序运行的方法)

2. 关闭当前后台运行的命令

ps命令 功能:查看当前的所有进程

imgimg

kill命令:结束进程

​ (1)通过jobs命令查看jobnum,然后执行 kill jobnum

​ (2)通过ps命令查看进程号PID,然后执行 kill PID

​ 如果是前台进程的话,直接执行 Ctrl+c 就可以终止了

​ ------- 作者:求知之人 来源:优快云 原文

3. linux后台运行命令nohup和&的区别

  1. &的意思是在后台运行, 什么意思呢? 意思是说, 当你在执行 ./a.out & 的时候, 即使你用ctrl C, 那么a.out照样运行(因为对SIGINT信号免疫)。 但是要注意, 如果你直接关掉shell后, 那么, a.out进程同样消失。 可见, &的后台并不硬(因为对SIGHUP信号不免疫)。

  2. nohup的意思是忽略SIGHUP信号, 所以当运行nohup ./a.out的时候, 关闭shell, 那么a.out进程还是存在的(对SIGHUP信号免疫)。 但是, 要注意, 如果你直接在shell中用Ctrl C, 那么, a.out进程也是会消失的(因为对SIGINT信号不免疫)

  3. 所以, &和nohup没有半毛钱的关系, 要让进程真正不受shell中Ctrl C和shell关闭的影响, 那该怎么办呢? 那就用nohua ./a.out &吧, 两全其美。

来源:https://blog.youkuaiyun.com/stpeace/article/details/76389073 https://blog.youkuaiyun.com/u011095110/article/details/78666833

以上就是良许教程网为各位朋友分享的Linux相关知识。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值