聊聊Linux 运维后台启动命令

在 Linux 运维工作中,nohup、&和重定向是实现程序后台稳定运行的核心工具。搞清楚它的原理,使用合适的组合与技巧,工作中就可以掌控后台进程。

一、核心工具作用:nohup、&、重定向

nohup:全称 “no hang up”,让程序忽略终端关闭时的 SIGHUP 终止信号,确保终端断开后进程继续运行。单独使用会占用终端,需配合&。

&:将程序转入后台运行,不阻塞终端,可继续输入命令。但单独使用时,终端关闭后进程会终止,必须与nohup搭配。

重定向:管理程序输出,避免日志混乱。常用符号:

  • >:覆盖写入文件;>>:追加写入

  • 2>:重定向错误输出(stderr)

  • 2>&1:合并错误与标准输出(stdout)

  • /dev/null:丢弃输出,不保存日志

二、实际运维工作中的组合方案


1. 基础方案:默认输出

nohup 命令 &
#输出默认写入nohup.out

适用于临时测试,如写一个检测内网某个应用的页面是否正常访问的perl脚本,然后后台执行:

在这里插入图片描述

执行后返回 PID(如截图的7886),脚本正常执行完成,日志可通过ca命令查看,如果程序不是立即完成的,可通过tail -f nohup.out滚动查看。

2. 标准方案:分离输出

需区分正常与错误日志时,用nohup 命令 > 标准日志 2> 错误日志 &,适用于生产环境。示例:

nohup node server.js > server.log 2> server_error.log &

3. 简化方案:合并输出

无需区分日志时,用nohup 命令 > 合并日志 2>&1 &。示例:

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

4. 纯净方案:丢弃输出

无日志需求时,定向到/dev/null:

nohup ./monitor > /dev/null 2>&1 &

三、进程管理技巧

  1. 查看进程
jobs -l #查看当前终端后台任务,显示编号与 PID,切换终端失效。
ps aux | grep 关键词 #查看系统所有进程,如ps aux | grep python3,不受终端限制
  1. 终止进程
正常终止:kill PID(如kill 12345

四、常见问题解决

  1. 程序启动即终止:检查命令路径(用绝对路径)、依赖是否缺失,先前台执行验证;
  2. 日志不生成:确认重定向顺序(正确:> log.log 2>&1),排查目录权限(用touch test.log测试);
  3. 终端关闭进程终止:确保加nohup,含管道命令需用括号包裹(如nohup (cmd1 | cmd2) > log.log 2>&1 &)。

总而言之,nohup保活(关闭终端也可运行)、&实现后台运行、重定向管理日志,三者组合是 Linux 后台运行程序的关键。根据场景选择方案,结合jobs、ps、kill管理进程,可大幅提升运维效率。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

企鹅侠客

您的打赏是我创作旅程中的关键燃

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值