1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > linux 退出终端仍运行进程 日志输出 后台执行任务 不在终端打印信息

linux 退出终端仍运行进程 日志输出 后台执行任务 不在终端打印信息

时间:2022-05-21 03:36:15

相关推荐

linux 退出终端仍运行进程 日志输出 后台执行任务 不在终端打印信息

&命令:

xxx >/dev/null 2>&1 & 屏蔽一切logxxx >/tmp/xxx.log 2>&1 & 可以在xxx.log中看日志

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

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

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

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

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

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

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

终止后台进程

1.jobs 查看kill %jobnumber

2.ps 查看 kill [-SIGKILL] pid

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

重连screen -r 2

screen介绍

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

2.语法

screen [-AmRvx -ls -wipe][-d ][-h ][-r ][-s ][-S ]

3.参数说明

-A 将所有的视窗都调整为当前终端机的大小。

-d 将指定的screen作业离线。

-h 指定视窗的缓冲区行数。

-m 即使当前已在作业中的screen作业,仍强制建立新的screen作业。

-r 恢复离线的screen作业。

-R 先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。

-s 指定建立新视窗时,所要执行的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 新建 screen 终端,并运行命令

:resize 改变当前窗口高度为

:quit 退出 screen 关闭所有 screen 终端,结束其中所有任务

Ctrl-a 进入选择模式

或 Ctrl-u 光标上移一页

或 Ctrl-d 光标下移一页

或 h 光标左移一格

或 j 光标下移一行

或 k 光标上移一行

或 l 光标右移一格

选择开始,选择结束

退出选择模式

Ctrl-a ] 粘贴选择的内容

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。