【Linux专题】退出bash后再运行jobs命令为什么不会显示后台任务
【Linux专题】firewalld 过滤出接口流量-CSDN博客文章浏览阅读214次。风和日丽,小微给你送福利~如果你是小微的老粉,这里有一份粉丝福利待领取...如果你是新粉关注到了小微,那恭喜你,你赚到了![欢迎关注微信公众号:厦门微思网络]正值微思19周年庆之际,我们在想:是否可以为大家创造更多的价值?为了感激大家长期来的关注,几经商榷,我们决定先给大家发一份大福利!加小姐姐微信:xmws-IT,验证备注:CSDN学习视频话不多说,直接上福利介绍——福利1思科零基础入门实战视频教程今天我们为大家整理了一份...思科、华为、红帽、数据库、云计算等等_厦门微思网络的博客-CSDN博客。https://blog.csdn.net/XMWS_IT/article/details/134467179?spm=1001.2014.3001.5501【微/信/公/众/号:厦门微思网络】
为什么 jobs 命令无法显示后台运行任务
系统管理员有时会将任务放在后台运行,并通过 jobs 命令查看后台任务的数量,但有时 jobs 的输出结果并不尽如人意,请看以下例
子
▶ 例: 运行后台任务后退出 bash 然后再次登录,再次执行 jobs 命令
[root@localhost ~]# ping 1.1.1.1 &>file &
[1] 15336
[root@localhost ~]# jobs
[1]+ Running ping 1.1.1.1 &>file &
[root@localhost ~]# exit
logout
Connection closed.
[root@localhost ~]# jobs
[root@localhost ~]# ps -p 15336
PID TTY TIME CMD
15336 ? 00:00:00 ping
[root@localhost ~]#
此时会发现重新登录后,执行了 jobs 命令但没有显示任何"后台任务",但直接查询 PID 则可以看到后台任务其实还在运行中(上图中 TTY 列显示 ? 表示进程是后台进程)
根本原因
这是因为 jobs 只会显示从属于同一个 shell 启动的后台任务; 当用户退出原本的 bash 后,再次登录后的 bash 就不是原先执
行后台任务的 bash 了
解决方案
使用 tmux 终端多路复用工具来执行后台任务; 这样就可以重新登录后再连接到对应的虚拟终端屏幕上查看后台任务。