开门见山,最近.NET劝退师要在linux上写些长时间运行的脚本,获取Azure BlobStorage存储的数据。
记录一下Linux中后台执行作业的命令。

Linux作业

作业(Job)是shell管理的进程(每个job都有一个关联的PID),每个作业会被分配一个线性job ID。
有两种形式的作业:

  1. Foreground: 当你在终端窗口输入命令,这个命令将会占据终端窗口,直到命令执行完成, 这是一个前台Job

  2. Background: 当你在命令后面添加& 符号,命令将不会占据终端窗口(你可在shell prompt继续输入),这是一个后台Job

Linux作业控制命令

使用作业控制命令,您可以在Shell中运行和管理多个作业。但是你只能在启动作业的Shell中使用作业控制命令

命令 描述
jobs 列出所有的Job, 后面可接参数进行过滤
bg %n 将当前/指定Job放置到后台运行
fg %n 将当前/指定Job带到前台运行

另外还有一些与作业有关的快速操作:

  1. & :让命令或者脚本在后台运行

  2. Ctrl+Z:中断前台作业,并放置在后台

  3. Ctrl+C:终止当前前台作业

  4. nohup:即使关闭终端也会执行(一般搭配上面的&)

在后台运行作业

在原命令的最后加上 &,可让这个作业在后台运行。下面的例子:在后台执行sleep命令

$ sleep 100 &
[1] 14488

shell返回结果:中括号内是job ID, 后面是PID;之后使用jobs命令查看状态:100s之后这个后台作业执行完成

[root@recv-data recv]# jobs
[1]+  Running                 sleep 100 &
....
[root@recv-data recv]# jobs
[1]+  Done                    sleep 100

管理作业

对于前台作业,
执行Ctrl+Z可以将前台作业中止,并放置在后台;之后可以使用bg %n命令让中止的后台作业跑起来。

# 将前台作业中止,并放置到后台
$ sleep 100
^Z
[1]+  Stopped                 sleep 100$ jobs
[1]+  Stopped                 sleep 100# bg命令让后台中止的作业跑起来
$ bg % 1
[1]+ sleep 100 &

处于后台的作业,fg %n切换回前台执行。

# 下面显示一个正在运行的后台作业
$ jobs
[1]+  Running                 sleep 100 &# 切换回前台运行
$ fg %1
sleep 100

众所周知, Ctrl+C终止当前前台作业,不多说。

nohup:关闭终端也执行

很多时候,你是通过ssh登录到远程服务器,再执行Shell脚本或命令,如果你退出了终端(终止远程连接),则该进程/命令将被杀死。如果不确定该作业何时完成,则最好让该作业在后台运行,但是,如果你退出系统,该作业将被Shell停止并终止,当进程收到SIGHUP时,如何使作业在后台运行?

这个时候,我们就要使用nohup命令,让我们长时间运行的Shell脚本或命令在我们退出系统依旧能执行(此时一般搭配&后台执行)。

顾名思义:nohup是用于忽略HUP(挂断)信号的POSIX命令。

总结:

  • 只能在初始化作业的shell里管控作业

  • fg %n bg %n 切换前后台作业

  • nohup & 搭配,帮助长时间后台运行的作业,在你退出系统,依旧可运行

  • 前后端分离,如何在前端项目中动态插入后端API基地址?(in docker)

  • ASP.NET Core跨平台技术内幕

  • AspNetCore结合Redis实践消息队列

  • Quartz.net在集群环境下部署任务的姿势

  • 基于docker-compose的Gitlab CI/CD实践&排坑指南

Linux中作业控制命令相关推荐

  1. linux 终止作业任务命令,Linux中作业控制命令

    原标题:Linux中作业控制命令 开门见山,最近.NET劝退师要在linux上写些长时间运行的脚本,获取Azure BlobStorage存储的数据. 记录一下Linux中后台执行作业的命令. Lin ...

  2. Linux中iptraf命令详解(IP局域网监控工具)

    2019独角兽企业重金招聘Python工程师标准>>> Linux中iptraf命令详解(IP局域网监控工具) 发布时间:2017-12-27 20:46:03   作者:佚名    ...

  3. linux下的zz命令,linux中cut命令的用法

    本文主要记录一下Linux中cut命令的用法. 1. cut命令使用说明 Usage: cut OPTION... [FILE]... cut命令用于选出FILE文件中每一行的某些部分,然后打印到标准 ...

  4. Linux中常见命令和单词的缩写全称

    Linux中常见命令和单词的缩写全称 文章目录: 参考 ls:list(列出目录内容)cd:Change Directory(改变目录) su:switch user 切换用户 rpm:redhat ...

  5. linux中ls命令

    linux中ls命令应该用的很多了,列出当前路径下的文件和目录ls 查看目录中的文件          ls -F 查看目录中的文件          ls -l 显示文件和目录的详细资料      ...

  6. Linux中grep命令的12个实践例子

    你是否遇到过需要在文件中查找一个特定的字符串或者样式,但是不知道从哪儿开始?那么,就请grep来帮你吧. grep是每个Linux发行版都预装的一个强有力的文件模式搜索工具.无论何种原因,如果你的系统 ...

  7. Linux中date命令的各种实用方法--转载

    在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的运算,自己也曾经为时间的各种表示方法和如何修改时间而困惑,熟练运用date命令来表示自己想要表示的时间,肯定可以给自己的 ...

  8. linux++tar打包目录,linux中tar命令打包目录与排除目录打包linux操作系统 -电脑资料...

    本文章来给各位朋友详细介绍关于linux中tar命令打包目录与排除目录打包有需要了解tar命令的使用方法的朋友可进行参考参考, 打包压缩目录很简单如下代码如下复制代码 tar -czf small.t ...

  9. linux安装virtualbox命令,在Linux中从命令行查找Virtualbox Version的方法

    在我的Ubuntu无头服务器上使用Virtualbox时,我需要找到Virtualbox的版本,如果是GUI,我可以通过导航到Virtualbox->About->Help轻松找到它,但我 ...

最新文章

  1. Photoshop CC2019软件安装教程
  2. 设计模式学习笔记——原型(Prototype)框架
  3. GBK转unicode码查询表的改进
  4. 使用harviewer显示har文件
  5. Norton Ghost V12
  6. 三星帝国的风险:四大业务同荣同损
  7. 大小限制_微信传文件有大小限制?PPT太大怎么传?PPT自带三大压缩功能
  8. 海思移植 APR(Apache Portable Runtime)
  9. 智能商场管理系统(可当做毕设)
  10. android 仿飞猪日历,vue+vux 仿飞猪app火车票部分(四)
  11. iOS直播等开源项目地址收藏
  12. MySQL数据库监控与调优(2)
  13. python求极限_数学——函数极限知识以及sympy库的limit
  14. WINCC的SQL应用,无需修改任何源码
  15. 6月17日吃鸡服务器维护,英雄联盟6月17日更新了什么
  16. 搜索引擎高级搜索指令
  17. 成都、九寨、黄龙、都江堰之成都
  18. 计算机电脑网络电缆,笔记本电脑的网络电缆在哪里
  19. Ubuntu1804 配置静态IP
  20. 2021年我国单身成年人将升至9200万,单身人口的增加会带来哪些影响?

热门文章

  1. 【LeetCode】3. Longest Substring Without Repeating Characters
  2. Lua 学习笔记(一)
  3. android bitmap drawable 互转
  4. 【SQL基础】T-SQL函数类型——元数据函数
  5. 邮件发送类,支持Gmail
  6. mysql 回退查询_MYSQL数据库表排序规则不一致导致联表查询,索引不起作用问题...
  7. Vim的新一代补全插件:coc.nvim
  8. Install OpenCV-Python in Ubuntu
  9. shell脚本注意点
  10. Beyond Compare中插入表格数据的教程