后台执行任务,不在终端打印信息

参考文献 &命令把做业放到后台执行,不占用终端(屏幕)html

&命令: linux

xxx >/dev/null 2>&1 &                           屏蔽一切log
xxx >/tmp/xxx.log 2>&1 &                     能够在xxx.log中看日志
shell

      适合在后台运行的命令有find、费时的打印做业、费时的排序及一些shell脚本。在后台运行做业时要小心:须要用户交互的命令不要放在后台执行,由于这样你的机器就会在那里傻等。bash

     不过,做业在后台运行同样会将结果输出到屏幕上。若是放在后台运行的做业会产生大量的输出,最好使用下面的方法把它的输出重定向到某个文件中:
 command  >out.file 2>&1 &
 在上面的例子中,全部的标准输出和错误输出都将被重定向到一个叫作out.file 的文件中。当你成功地提交进程之后,就会显示出一个进程号,能够用它来监控该进程,或杀死它。
session


Linux后台进程管理 注意在使用jobnumber时当前任务的概念ssh

jobs [-l] 查看当前在后台正在运行或者被挂起的任务。ide

fg [%jobnumber] 将后台任务调至前台继续运行工具

Ctrl+z 将一个在前台正在执行的命令放到后台,并处于暂停状态 (能够组合bg使用) -- 挂起前台进程 (Ctrl+c 终止前台进程)ui

bg [%jobnumber] 讲一个在后台暂停的命令变为继续执行(在后台)spa

终止后台进程

1.jobs 查看kill %jobnumber

2.ps 查看 kill [-SIGKILL] pid


[译]后台执行UNIX/Linux命令和脚本的五种方法

5 Ways to Execute UNIX / Linux Commands (and Shell Scripts) in Background

1.nohup 避免退出登陆时后台执行的命令或者脚本被自动终止

目前看来在Ubuntu Server上不存在这个问题,可是从新登陆以后没法再链接到这个会话,jobs没法查看后台任务。

2.screen命令执行,从新登陆后链接到会话  linux下的screen命令用来后台执行

3.at 指定日期与时间容许,做为批处理执行

4.watch连续执行命


ssh 关闭后仍保持当前运行的进程 --  相似前述内容的一个综合以及一些新的东西,nohup命令参考

使用screen命令简单介绍以下:

screen perl static-100-10.pl

须要中断链接:

Ctrl+a d

在每一个screen session 下,全部命令都以 ctrl+a(C-a) 开始。

查询screen进程:

ps x

查询screen做业

screen -ls

wKiom1NmPTDADDKRAAIGNuBUqfI364.jpg

wKiom1NmPxPjFFL2AADSqpYpD_4070.jpg

重连

screen -r 22011


screen介绍

1.使用telnet或SSH远程登陆linux时,若是链接非正常中断,从新链接时,系统将开一个新的session,没法恢复原来的session,screen命令能够解决这个问题。Screen工具是一个终端多路转接器,在本质上,这意味着你可以使用一个单一的终端窗口运行多终端的应用。screen为多重视窗管理程序,此处的视窗是指一个全屏幕的文字模式画面。一般只有在使用telnet登入主机或是使用老式的终端机时,才有可能用到screen程序。

2.语法

screen [-AmRvx -ls -wipe][-d <做业名称>][-h <行数>][-r <做业名称>][-s <shell>][-S <做业名称>]

3.参数说明

-A  将全部的视窗都调整为当前终端机的大小。
-d<做业名称>  将指定的screen做业离线。
-h<行数>  指定视窗的 缓冲区行数。
-m  即便当前已在做业中的screen做业,仍强制创建新的screen做业。
-r<做业名称>  恢复离线的screen做业。
-R  先试图恢复离线的做业。若找不到离线的做业,即创建新的screen做业。
-s<shell>  指定创建新视窗时,所要执行的shell。
-S<做业名称>  指定screen做业的名称。
-v  显示版本信息。
-x  恢复以前离线的screen做业。
-ls或--list  显示当前全部的screen做业。
-wipe  检查当前全部的screen做业,并删除已经没法使用的screen做业。

4.使用说明

在每一个screen session 下,全部命令都以 ctrl+a(C-a) 开始。
  C-a ? -> Help,显示简单说明
  C-a " -> 列出终端列表
  C-a A -> 重命名终端
  C-a c -> 建立新的终端,并切换到该终端
  C-a d -> 暂时断开会话,但全部任务都依然执行
  C-a K -> 关闭当前终端,并切换到下一个终端(当没终端时 退到原始shell终端)
  C-a n -> 切换到下一个终端
  C-a p -> 切换到上一个终端
  C-a t -> 显示当前时间,和系统的 load
  C-a S -> 新建水平线分割终端
  C-a Tab -> 水平线切换终端
  C-a X -> 关闭当前终端
  C-a + -> 扩大当前终端
  C-a - -> 缩小当前终端

  C-a [Space] -> 窗口切换
  C-a 0-9 -> 在0-9个终端之间切换
  C-a C-a -> 最近使用的2个窗口切换
  C-a w -> 列出终端列表
  C-a x -> 锁住当前窗口,需用用户密码解锁
  C-a z -> 把当前会话放到后台执行,用 shell 的 fg 命令则可回去。

  exit:关闭当前终端 (注:和“C-a c”同样
Ctrl-a:
  :screen <command> 新建 screen 终端,并运行命令<command>
  :resize <height> 改变当前窗口高度为<height>
  :quit 退出 screen 关闭全部 screen 终端,结束其中全部任务

  Ctrl-a <Esc> 进入选择模式
  <PageUp> 或 Ctrl-u 光标上移一页
  <PageDown> 或 Ctrl-d 光标下移一页
  <Left> 或 h 光标左移一格
  <Down> 或 j 光标下移一行
  <Up> 或 k 光标上移一行
  <Right> 或 l 光标右移一格
  <Space> 选择开始,选择结束
  <Esc> 退出选择模式
  Ctrl-a ] 粘贴选择的内容

来源:百度百科
参考连接 linux 技巧:使用 screen 管理你的远程会话

相关文章
相关标签/搜索