shell之nohup&

说明

当用户注销(logout)或者网络断开时,终端会收到 HUP(hangup)信号从而关闭其所有子进程。因此,我们的解决办法就有两种途径:要么让进程忽略 HUP 信号,要么让进程运行在新的会话里从而成为不属于此终端的子进程。

例如:
启动springboot时,通常以下命令:

java -jar test.jar >/dev/null 2>&1 &
#或
java -jar test.jar &>/dev/null &

nohup

nohup 无疑是我们首先想到的办法。顾名思义,nohup 的用途就是让提交的命令忽略 hangup 信号。

只需在要处理的命令前加上 nohup 即可,标准输出和标准错误缺省会被重定向到 nohup.out 文件中。一般我们可在结尾加上"&“来将命令同时放入后台运行,也可用”>filename 2>&1"来更改缺省的重定向文件名。

1、控制台显示

$ ping baidu.com
PING baidu.com (123.125.115.110): 56 data bytes
64 bytes from 123.125.115.110: icmp_seq=0 ttl=57 time=5.047 ms
64 bytes from 123.125.115.110: icmp_seq=1 ttl=57 time=41.392 ms

2、输出至nohup.out,还在该终端运行,关闭结束

$ nohup ping baidu.com
appending output to nohup.out
# 输出至nohup
$ cat nohup.out
PING baidu.com (220.181.57.216): 56 data bytes
64 bytes from 220.181.57.216: icmp_seq=0 ttl=52 time=7.172 ms
64 bytes from 220.181.57.216: icmp_seq=1 ttl=52 time=23.256 ms

3、输出至nohup.out,后台进程

$ nohup ping baidu.com &
[1] 31104

可以进程会一直运行。

$ tail -f  nohup.out
64 bytes from 220.181.57.216: icmp_seq=11 ttl=52 time=5.830 ms
64 bytes from 220.181.57.216: icmp_seq=12 ttl=52 time=6.242 ms
64 bytes from 220.181.57.216: icmp_seq=13 ttl=52 time=5.156 ms

通过kill关闭。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值