有时我们也许会有这样的需求:要执行一个命令或者脚本,但是需要几个小时甚至几天。这就要考虑一个问题,就是中途断网或出现其他意外情况,执行的任务中断了怎么办?你可以把命令或者脚本丢到后台运行,不过也不保险。下面就介绍两种方法来避免这样的问题发生。
1. 使用nohup
[root@localhost ~]# cat /usr/local/sbin/sleep.sh
#! /bin/bash
sleep 1000
[root@localhost ~]# nohup sh /usr/local/sbin/sleep.sh &
[1] 19997
[root@localhost ~]# nohup: 忽略输入并把输出追加到nohup.out
直接加一个 ‘&’ 虽然丢到后台了,但是当退出该终端时很有可能这个脚本也会退出的,而在前面加上 nohup 就没有问题了,nohup的作用就是不挂断地运行命令。
2. screen工具的使用
简单来说,screen是一个可以在多个进程之间多路复用一个物理终端的窗口管理器。screen中有会话的概念,用户可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的ssh连接窗口那样。下面阿铭介绍screen的一个简单应用。
1)打开一个会话,直接输入screen命令然后回车,进入screen会话窗口。如果你没有screen命令,请用yuminstall-yscreen安装。
[root@localhost ~]# screen
[root@localhost ~]#
2)screen -ls 查看已经打开的screen会话
[root@localhost ~]# screen -ls
there is a screen on:
20001.pts-0.localhost (attached)
1 socket in /var/run/screen/s-root.
3)ctrl +a 再按d退出该screen会话,只是退出,并没有结束。结束的话输入ctrl +d 或者输入exit
4)退出后还想再次登录某个screen会话,使用sreen -r [screen 编号],这个编号就是上例中那个20001。当只有一个screen会话时,后面的编号是可以省略的。当你有某个需要长时间运行的命令或者脚本时就打开一个screen会话,然后运行该任务。按ctrl +a 再按d退出会话,不影响终端窗口上的任何操作。
还肾没长好呢 iPhone8就来了!发布时间已确认 售价1000美元还双卡双待?
如何用调试器JLink来打印信息
什么是高速电路?“高频”和“高速”有什么区别
如何使用ESP模块构建自己的WiFi交换机以及如何控制任何设备
人工智能越来越无所不能,人类该如何自处?
介绍两种方法来避免正在执行中的任务中断
数字孪生智慧工厂及3d可视化数据大屏展示系统介绍
Xilinx-FPGA的DNA的读取方法
基于ARM11+Linux的无线视频监控系统
基于树莓派的TensorFlow对象检测系统设计方案
x86主板工业级主板与工控级主板之间的区别是什么
新汽车显示屏需要合适的背光照明LED驱动器
用Raspberry Pi和SensorMedal制作IoT跳绳设备 第四部分:在设备上安装显示器以增加动力
25亿!优必选科技在国际市场签订史上最大AI教育项目
NB-IoT模组使用中的常见问题及解决办法
OPPO R9s红色为什么还那么火?
DIN11系列交流信号隔离变送器概述及特性
甘肃民航飞机维修公司获得了2018年度国航金牌机务航站奖牌
MAC地址注册的网络安全影响和措施分析
统信软件宣布将以深度社区打造中国桌面操作系统根系统