【Linux系统理论操作学习26】LInux的后台运行,重定向输出,前后台进程转换和管理 您所在的位置:网站首页 linux把进程转为前台运行 【Linux系统理论操作学习26】LInux的后台运行,重定向输出,前后台进程转换和管理

【Linux系统理论操作学习26】LInux的后台运行,重定向输出,前后台进程转换和管理

2023-12-13 02:49| 来源: 网络整理| 查看: 265

1 输出的后台运行 1.1 简单后台运行

nohup表示程序不被挂起

&表示后台运行程序

如果说使用&,就会出现问题:后台执行的进程,其父进程还是当前终端shell的进程,而一旦父进程退出,则会发送hangup信号给所有子进程,子进程收到hangup以后也会退出。如果我们要在退出shell的时候继续运行进程,则需要使用nohup忽略hangup信号,或者setsid将将父进程设为init进程(进程号为1)

nohup your_commond &

注意:空行代表系统等待输入

上面的试验演示了使用nohup加上&使进程在后台运行,同时不受当前shell退出的影响。那么对于已经在后台运行的进程,该怎么办呢?可以使用disown命令:

./test.sh & >>[1] 2539 jobs -l >>[1]+ 2539 Running ./test.sh & disown -h %1 1.2 python后台运行(不启用缓存,实时刷新)

-u表示不启用缓存,实时输出打印信息到日志文件(如果不加-u,则会导致日志文件不会实时刷新代码中的print函数的信息)

nohup python3 -u xxx.py & 1.3 输出重定向 nohup your_commond >mylog.log 2>&1 & cat mylog.log

注意:如果没有重定向的话nohup会自动新建一个nohup.out文件,作为重定向位置

注意:当写成>/dev/null这种重定向形式的时候就是默认不输出

可以参考参考文献中的第一个里面有详细的讲解

command > filename 把标准输出重定向到一个新文件中 command >> filename 把标准输出重定向到一个文件中(追加) command 1 > fielname 把标准输出重定向到一个文件中 command > filename 2>&1 把标准输出和标准错误一起重定向到一个文件中。 command 2 > filename 把标准错误重定向到一个文件中 command 2 >> filename 把标准输出重定向到一个文件中(追加) command >> filename 2>&1 把标准输出和标准错误一起重定向到一个文件中(追加) command filename2 把command命令以filename文件作为标准输入,以filename2文件作为标准输出 command


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有