Linux下程序后台运行及前后台切换

本文介绍在Linux环境下,如何使程序在后台持续运行并保存输出,即使客户端断开连接也能保持程序运行。提供了两种方法,一种是使用重定向输出到文件,另一种是利用nohup命令确保程序不因终端关闭而中断。同时,分享了几个实用的任务管理和进程控制命令。

    网上的方法有很多,这里主要列举我最喜欢的两种。

    假如我们有程序server.cpp,通过编译后产生可执行文件server,我们要使server在linux服务器后台执行。当客户端关机后重新登入服务器后继续查看本来在终端输出的运行结果。(假设操作都在当前目录下)

方法1. 在终端输入命令:

./server > server.file 2>&1 & 

解释:将server直接放在后台运行,并把终端输出存放在当前目录下的server.file文件中。

当客户端关机后重新登陆服务器后,直接查看server.file文件就可看执行结果

cat server.file

这种方法有时候关闭终端也会导致程序中断,有另一种更保险的方法,如下:

方法2. 在终端输入命令

nohup  ./server > server.file 2>&1 &

解释:nohup就是不挂起的意思,将server直接放在后台运行,并把终端输出存放在当前目录下的pso.file文件中。当客户端关机后重新登陆服务器后,直接查看server.file

cat server.file

常用任务管理命令

# 查看任务,返回任务编号n和进程号
jobs -l

# 挂起当前任务
ctrl+z

# 将编号为n的任务转后台运行
bg %n

# 将编号为n的任务转前台运行
fg %n

# 结束当前任务
ctrl+c 

# 设置程序父进程为1,不中断
setsid ./test.sh &

# 查看指定任务详细
ps -ef | grep test

# 显示当窗口父进程
IDecho $$
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值