恶补基础:nohup 与 &

区别对比

  1. & 是后台运行,表示将命令或脚本放入后台运行。即&方式启动会有进程号,使用ctrl+c程序不会终端,但终端关闭会终端程序
  2. nohup是不挂断运行,并没有后台运行的功能,表示用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响他的运行。

推荐nohup与&联合使用

# 后台执行test.sh文件,将标准日志输出到output.log文件中,将错误日志也输出到output.log文件中
nohup ./test.sh > output.log 2>&1 &
等同于
nohup ./test.sh > output.log 2>output.log &

">"符号用于将命令的标准输出重定向到指定的文件中
> outlog.log 表示将终端输出保存到outlog.log文件中
"2>"表示将命令的标准错误输出重定向到指定的文件中
2>&1 表示将命令的标准错误输出重定向到标准输出1中一起输出
& 后台挂起

2&1

0 表示stdin标准输入,用户键盘输入的内容
1 表示stdout标准输出,输出到显示屏的内容
2 表示stderr标准错误,报错内容
2>&1是一个整体,>左右不能有空格,即将错误内容重定向输入到标准输出中去。
> 符号用于将命令的标准输出重定向到指定的文件中,
2>表示将命令的标准错误输出重定向到指定的文件中,
2>&1表示将命令的标准错误输出重定向到标准输出中

nohup不生成日志

#/dev/null 表示空设备文件。 如果不想输出任何的日志时,使用此参数 。
nohup ./test.sh >/dev/null & 

查看进程

ps -aux | grep "test.sh"

  • a: 显示所有进程(等价于-e)
  • u: 以用户为主的格式来显示
  • x: 显示所有程序,不区分终端机
  • grep [参数]:过滤包含引号内字符串的进程

ps -ef

  • e:显示所有进程(等价于-A)
  • f: 全部列出,通常和其他选项联用

参考资料

Linux nohup后台启动/ 后台启动命令中nohup 、&、重定向的使用

linux ps命令详解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值