CentOS7后台运行程序
本文最后更新于609 天前,其中的信息可能已经过时,如有错误请发送邮件到1739584917@qq.com

在服务器上,为了退出终端,程序依然能够运行,需要设置程序在后台运行。

有一种常用的方式:nohup

nohup命令模板

nohup ./xxx.sh > xxx.log 1>&2 &

后台不挂起执行xxx.sh。标准输出、错误输出,输出到xxx.log文件

此种情况,程序会再后台执行,退出用户或关闭客户终端,不影响程序运行。如想关闭程序,可通过kill命令关闭。

nohup ./xxx.sh > /dev/null 1>&2 &

后台不挂起执行xxx.sh。标准输出、错误输出,均不输出

如果是python程序则可以这么写:

nohup python  -u test.py > test.log 2>&1 &

含义解释

nohup 不挂起的意思
python test.py python运行test.py文件 (注意:如果是python3环境则写python3)

-u 代表程序不启用缓存,也就是把输出直接放到log中,没这个参数的话,log文件的生成会有延迟

test.log 将输出日志保存到这个log中

2>1 2与>结合代表错误重定向,而1则代表错误重定向到一个文件1,而不代表标准输出;
2>&1 换成2>&1,&与1结合就代表标准输出了,就变成错误重定向到标准输出.

& 最后一个& ,代表该命令在后台执行

可以通过jobs命令查看nohub命令下运行的所有后台进程
也可以通过ps命令查看

比如查看后台python进程:

ps -aux | grep python3

Kill命令

kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>]

参数说明:

-l <信息编号>  若不加<信息编号>选项,则 -l 参数会列出全部的信息名称。
-s <信息名称或编号>  指定要送出的信息。
[程序]  [程序]可以是程序的PID或是PGID,也可以是工作编号。
使用 kill -l 命令列出所有可用信号。

最常用的信号是:

1 (HUP):重新加载进程。
9 (KILL):杀死一个进程。
15 (TERM):正常停止一个进程。

例如:

kill -9 test.sh

强制关闭test.sh这个进程

参考文章

https://blog.csdn.net/xiongzaiabc/article/details/86637773

https://www.jianshu.com/p/cb25cca2f8da
如果觉得本文对您有所帮助,可以支持下博主,一分也是缘
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇