介绍一个 python 工程师必须掌握的 CentOS 命令,nohup
⛳️ 实战背景
本篇博客为大家打来的是一个命令,如果未来你希望成为 Python 工程师,就一定会有该命令的场景,它经常出现在服务器端,这里优先选择 CentOS 系统。
本命令叫做 nohup
,英文全称叫做 no hangup
,即不挂起,表示程序在系统后台补挂断运行,即使我们退出终端,程序也不会终止运行。
补充一个知识点,HUP 是信号的意思,它是在终端被终止的时候向它所关联的进程发送的信号,进程收到该信号就会终止运行。
如果你刚刚接触 Python,那你需要了解一下本场景,在工作中,Python 工程师经常需要去服务器端运行脚本,代码简单且运行时间短的可以在终端直接运行,然后等待结束即可。但遇到耗时长,或者需要反复运行的代码,我们需要让其在后台运行,即退出终端程序不终端。看到这里,你就会发现,该场景和 nohup
的目标重合了。
nohup 命令,默认会输出一个 nohup.out
在程序目录,如果当前目录 nohup
仅支持读操作,会在 $HOME
目录中重新创建文件。
nohup 命令基本格式
语法格式如下:
其中参数说明如下:
command
:待执行的命令;arguments
:参数,可以指定输出文件;&
:让命令在后台执行。
nohup 仅表示不挂起运行,& 是后台运行。
也可以使用:
查看 CentOS 系统 nohup
版本,可以使用下述命令,例如橡皮擦服务端的版本为 8.22,你可以实测一下目标环境版本号。
在正式学习前,准备一个测试脚本,即 Shell 版本的 Hello World!
该脚本的执行命令是
将上述代码在后台执行,使用如下代码:
其中 hello.log
表示的是日志文件,2>&1
表示将错误 2 重定向到标准输出 &1
,然后再重定向到 hello.log
文件中。
0
:stdin 标准输入;1
:stdout 标准输出;2
:stderr:标准错误输出。
command >hello.log
是将 command
的输出重定向到 hello.log
文件中,也就是输出内容不打印到终端,而是输出到 hello.log
文件中。2>&1
是将标准错误重定向到标准输出,而且标准输出已被重定向到 hello.log
文件,即将标准出错也输出到 hello.log
文件中。
如果希望不输出日志文件,可以使用如下命令:
扩展命令
使用 jobs
可以查看后台运行的程序:
得到结果如下所示:
后台程序重新展示到前台,使用 fg
,此时使用 ctrl+z
可以暂停任务到后台,使用 bg
将后台任务继续运行。
如果要停止后台程序,可以使用 ps
命令先查询出其 pid 号码,然后使用下述命令删除:
📣📣📣📣📣📣右下角有个大拇指,点赞的漂亮加倍💗 你正在阅读 【梦想橡皮擦】 的博客👍 阅读完毕,可以点点小手赞一下🌻 发现错误,直接评论区中指正吧📆 橡皮擦的第 <font color=red>621</font> 篇原创博客
版权声明: 本文为 InfoQ 作者【梦想橡皮擦】的原创文章。
原文链接:【http://xie.infoq.cn/article/7681f604f78de1f23740950be】。文章转载请联系作者。
评论