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

tech2024-09-27  16

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

    假如我们有程序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 $$
最新回复(0)