后台运行之nohup与&
程序员文章站
2024-03-26 12:54:35
...
后台运行之nohup与&
话不多说直接上脚本
#! /bin/bash
for host in hadoop102 hadoop103
do
echo "====================start $host data===================="
#标准输入: 0<
# position.sh < a.txt
#标准输出: 1
# position.sh > /xx.txt
#错误输出: 2
# position.sh >/xx.txt 2> &1
# nohup: 免挂断,ssh连接断开不会停止程序
# &: 后台执行,ssh连接断开程序会终止
ssh $host "nohup java -jar /opt/module/applog/gmall2020-mock-log-2020-04-01.jar >/dev/null 2>&1 &"
done
再来一遍解释:
-
/dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”。
-
nohup: 免挂断,ssh连接断开不会停止程序
-
&: 后台执行,ssh连接断开程序会终止
-
nohup 启动时必须指定标准输出和错误输出,标准输出 1 可以省略,然后指定输出路径,错误输出 2>&1 表示错误日志输出路径与标准输出路径相同。
- 标准输入0:从键盘获得输入 /proc/self/fd/0
- 标准输出1:输出到屏幕(即控制台) /proc/self/fd/1
- 错误输出2:输出到屏幕(即控制台) /proc/self/fd/2