在后台运行作业时要当心:需要用户交互的命令不要放在后台执行,因为这样你的机器就会在那里傻等。不过,作业在后台运行一样会将结果输出到屏幕上,干扰你的工作。...(ps -ef | grep 进程号 或者 kill -9 进程号) nohup 使用&命令后,作业被提交到后台运行,当前控制台没有被占用,但是一但把当前控制台关掉(退出帐户时),作业就会停止运行。...pid 前台进程的终止:ctrl+c 前后台进程的切换与控制 ctrl + z 命令 将一个正在前台执行的命令放到后台,并且处于暂停状态。...思考 问题1-为什么ssh一关闭,程序就不再运行了 元凶:SIGHUP 信号 让我们来看看为什么关掉窗口/断开连接会使得正在运行的程序死掉。...因为他们的程序特殊,比如httpd –k start运行这个以后,他不属于sshd这个进程组 而是单独的进程组,所以就算关闭了ssh,和他也没有任何关系!
问题的引入 程序员最不能容忍的是在使用终端的时候往往因为网络,关闭屏幕,执行 CTRL+C 等原因造成 ssh 断开造成正在运行程序退出,使得我们的工作功亏一篑。...sh test.sh & 3.nohup 指令 nohup(no hang up), 意思就是不挂断运行,用 nohup 运行命令可以使命令永久执行下去,和用户终端没有关系,断开 SSH 不影响运行,.../test.sh > out.log 2>&1 & 4.ctrl + z、jobs、fg、bg 如果我们程序在启动的时候并没有使用 &,nohup 怎么办呢,难道我们需要先执行 ctrl + c 将在前台执行的进程终止执行再重新启动吗...4.1 ctrl + z 将一个正在前台执行的作业进程放到后台,并且暂停,用术语讲就是挂起, 执行后如下: [1]+ Stopped ..../test.sh & 4.4 fg 将后台中的作业进程调至前台继续运行, 例如把 2 号作业(./test2.sh &)调至前台运行 fg 2 .
如果标准错误是一个终端,那么把指定的命令写给标准错误的所有输出作为标准输出重定向到相同的文件描述符。...nohup sh scripts.sh & 3.2切换为非关起 disown disown命令可以从当前 shell 的作业列表中移除全部作业,也可移除指定的一到多个作业;正在运行的作业也可以移除...;也可以标记作业,使得它们在当前 shell 退出后也不会结束。...Screen 中有会话的概念,用户可以在一个会话中创建多个 screen 窗口,在每一个 screen 窗口中就像操作一个真实的 t elnet/SSH 连接窗口那样。...#5 重新进入wget终端,任务正在运行 $ screen -r wget # 6 关闭会话任务,如果在会话中使用exit,就会在退出会话,也关闭了该会话,或者按ctrl+a,k # screen
linux screen 命令详解 一、背景 系统管理员经常需要SSH 或者telent 远程登录到Linux 服务器,经常运行一些需要很长时间才能完成的任务,比如系统备份、ftp 传输等等。...GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。 会话恢复 只要Screen本身没有终止,在其内部运行的会话都可以恢复。...另一个关闭窗口的方法是使用C-a k,这个快捷键杀死当前的窗口,同时也将杀死这个窗口中正在运行的进程。...如果一个Screen会话中最后一个窗口被关闭了,那么整个Screen会话也就退出了,screen进程会被终止。...除了依次退出/杀死当前Screen会话中所有窗口这种方法之外,还可以使用快捷键C-a :,然后输入quit命令退出Screen会话。需要注意的是,这样退出会杀死所有窗口并退出其中运行的所有程序。
3个进程对应的PGID相同, 即属于同一个进程组。...4.3 -> 作业状态 常见的作业状态如下表: 作业状态 含义 正在运行【Running】 后台作业(&),表示正在执行 完成【Done】 作业已完成,返回的状态码为0 完成并退出【Done(code)...】 作业已完成并退出,返回的状态码为非0 已停止【Stopped】 前台作业,当前被Ctrl+Z挂起 已终止【Terminated】 作业被终止 4.4 -> 作业的挂起与切回 4.4.1 -> 作业挂起.../test #键入 Ctrl + Z 观察现象 运行结果如下: # 结果依次对应作业号 默认作业 作业状态 运行程序信息 [1]+ 已停止 ..../test # 键入 Ctrl + Z 挂起作业 # 使用 jobs 命令查看后台及挂起的作业 [node@localhost code]$ jobs -l 运行结果如下: # 结果依次对应作业号
(PID) 第一行表示作业号和进程 ID, 可以看到作业号是 1, 进程 ID 是 3251046 2.3 作业状态 作业状态 含义 正在运行【Running】 后台作业(&),表示正在执行 完成【Done...】 作业已完成,返回的状态码为 0 完成并退出【Done(code)】 作业已完成并退出,返回的状态码为 0 已停止【Stopped】 前台作业,当前被 Ctrl + Z 挂起 已终止【Terminated...】 作业被终止 2.4 作业切回和挂起 作业切回 如果想将挂起的作业切回,可以通过 fg 命令,fg 后面可以跟作业号或作业的命令名称。...每一个会话也有一个会话 ID(SID) 比如:上面中进程组中的 SID 都相同,并且与父进程 Id 一样,这个 SID 究竟是什么呢?...如果终端关闭,这些进程可能会被终止或无法正常运行。
会话 会话(session)是一个或多个进程组的集合,它开始于用户登陆终端,结束于用户退出登陆。其义如其名,就是指用户与系统的一次对话的全程。...这是因为用户注销或者网络断开时,SIGHUP信号会被发送到会话所属的子进程,而此 SIGHUP 的默认处理方式是终止收到该信号的进程。所以若程序中没有捕捉该信号,当终端关闭后,会话所属进程就会退出。...我们常将 nohup 和 & 搭配到一块使用,执行命令如下 nohup command >/dev/null 2>&1 & 这样,就可以放心的等待进程运行结果了。...根据上面的概念我们得知终端关闭后进程退出是因为会话首进程向进程发送了 SIGHUP 信号,setsid 就厉害了,它直接打开一个新的会话来执行命令,那么原会话的终端的状态就再也不会影响到此进程了。...jobs jobs 是作业的基础命令,用它可以查看正在运行的作业的信息,其输出如下: jobs [1]- Running php test.php & [2]+ Stopped
背景 系统管理员经常需要SSH 或者telent 远程登录到Linux 服务器,经常运行一些需要很长时间才能完成的任务,比如系统备份、ftp 传输等等。...会话恢复 只要Screen本身没有终止,在其内部运行的会话都可以恢复。这一点对于远程登录的用户特别有用——即使网络连接中断,用户也不会失去对已经打开的命令行会话的控制。...另一个关闭窗口的方法是使用C-a k,这个快捷键杀死当前的窗口,同时也将杀死这个窗口中正在运行的进程。...如果一个Screen会话中最后一个窗口被关闭了,那么整个Screen会话也就退出了,screen进程会被终止。...除了依次退出/杀死当前Screen会话中所有窗口这种方法之外,还可以使用快捷键C-a :,然后输入quit命令退出Screen会话。 需要注意的是,这样退出会杀死所有窗口并退出其中运行的所有程序。
那就只剩下Signal的情况了;经过一番排查后,发现每次tomcat意外退出的时间与ssh会话结束的时间正好吻合。...这种情况下,如果用户直接关闭ssh终端的窗口(用鼠标或快捷键),则java进程也会退出。而如果先ctrl-c终止test.sh进程,然后再关闭ssh终端的话,则java进程不会退出。...我们的推测是ssh窗口在关闭时,对当前交互的shell以及正在运行的test.sh等子进程发送某个退出的Signal,找了一台装有systemtap的机器来验证,所用的stap脚本是从涧泉同学那里copy...(进程组)是相同的,这时我们用kill -2是可以杀掉sleep 1000进程的。...不开启作业控制的话,脚本里的后台进程可以通过设置忽略SIGINT信号来避免父进程对组中成员的传播,因为对它来说这个信号已经没有意义。
所以我们通过ctrl + z暂停进程就将其放回到后台了,然后再通过bg 作业号启动就可以了! 来看一下作业的状态: 状态名称 描述 运行中 Running 作业正在执行。...前台运行 Foreground 作业在前台执行,用户必须等待其完成后才能进行其他操作。 已完成 Completed 作业成功执行完毕。 已终止 Terminated 作业因错误或其他原因被强制终止。...等待中 Waiting 作业正在等待系统资源或其他作业的完成。 在Linux中,作业状态的产生如下: 运行中 (Running):作业启动后立即执行。如果作业是前台作业,它将直接占用命令行界面。...已完成 (Completed):作业成功执行完毕。在这个状态下,作业已经结束,不再运行。 已终止 (Terminated):作业由于接收到终止信号(如SIGTERM或SIGKILL)而被强制结束。...等待中 (Waiting):作业等待资源或事件。 5 守护进程 守护进程,又称为Daemon:守护进程是一种在操作系统后台运行的进程,它通常在系统启动时开始运行,并在系统关闭时终止。
: 运行了一个程序两个小时之后,你心想:再有一个小时程序就运行完了,于是你兴致勃勃的准备看结果。...此时你突然发现自己没有使用 nohup,这就意味着这个程序在自己离开之后会死掉。之前两个小时的运行时间就浪费了。 于是你满怀悔恨的按下了CTR+c,然后使用 nohup 重新运行程序。...原因是:SSH会话关闭时,ssh所关联的pty关闭,系统会给这个pty所关联的session中的所有进程发送SIGHUP信号,SIGHUP的默认信号处理程序是终止进程,除非进程自己处理了SIGHUP。...3.2 jobs jobs命令用来查看当前有多少在后台运行。 在Linux中,启动、停止、终止以及恢复作业的这些功能统称为作业控制。...作业控制中的关键命令是jobs命令,jobs命令允许查看shell当前正在处理的作业。jobs命令中输出有加号和减号,带加号的作业被当做默认作业,带减号的为下一个默认作业。
会话启动后,只要腾讯云CVM服务器正在运行,或者直到您停止会话,它将继续运行。您可以注销当前会话,然后重新连接到上一个会话。...可以将多个窗口连接到同一会话,并根据需要在它们之间切换。当您想要并行运行多个作业时,这会很有用。...再次按相同的组合可退出缩放模式 出口 关闭活动窗格 Prefix + x 强制在窗格中终止无响应的进程 管理tmux会话 有时甚至多个窗口和窗格都是不够的,您需要通过将布局分组到单独的会话中来逻辑地分离布局...但是只有当没有另一个以相同字符串开头的命令时,才有效。...再次按相同的组合可退出缩放模式 tmux kill-server 销毁所有会话并终止所有进程 创建tmux配置文件 当你对tmux感到满意时,你可能想要改变一些默认值。
Ctrl+Z:中断前台作业,并放置在后台 Ctrl+C:终止当前前台作业 nohup:即使关闭终端也会执行(一般搭配上面的&) 在后台运行作业 在原命令的最后加上 &,可让这个作业在后台运行。...# 下面显示一个正在运行的后台作业 $ jobs [1]+ Running sleep 100 & # 切换回前台运行 $ fg %1 sleep 100 “众所周知...nohup:关闭终端也执行 “很多时候,你是通过ssh登录到远程服务器,再执行Shell脚本或命令,如果你退出了终端(终止远程连接),则该进程/命令将被杀死。...如果不确定该作业何时完成,则最好让该作业在后台运行,但是,如果你退出系统,该作业将被Shell停止并终止,当进程收到SIGHUP时,如何使作业在后台运行?...总结: 只能在初始化作业的shell里管控作业 fg %n bg %n 切换前后台作业 nohup & 搭配,帮助长时间后台运行的作业,在你退出系统,依旧可运行
reboot 重新启动正在运行的Linux操作系统 补充说明 reboot命令用来重新启动正在运行的Linux操作系统。...会话恢复 只要Screen本身没有终止,在其内部运行的会话都可以恢复。这一点对于远程登录的用户特别有用——即使网络连接中断,用户也不会失去对已经打开的命令行会话的控制。...另一个关闭窗口的方法是使用Ctrl+a键,然后按下k键,最后当提示你是否要杀死这个会话时按下y键,这个快捷键会杀死当前的窗口,同时也将杀死这个窗口中正在运行的进程。...如果一个Screen会话中最后一个窗口被关闭了,那么整个Screen会话也就退出了,screen进程会被终止。...除了依次退出/杀死当前Screen会话中所有窗口这种方法之外,还可以使用快捷键C-a :,然后输入quit命令退出Screen会话。需要注意的是,这样退出会杀死所有窗口并退出其中运行的所有程序。
值得注意的是, 即使组长进程终止,只要组内还有其他进程存在,进程组仍然存在,直到组内所有进程退出或加入其他进程组。组长退出,进程组的PGID也不会改变。...终端(Terminal)是用户与计算机系统交互的入口,其核心功能是输入指令并显示输出结果。...候选默认作业(-):是 下一个可能成为默认作业 的作业。当当前默认作业(+)终止或被移除后,- 作业会自动升级为 +。...我们可以过以下命令来控制一个作业: 场景 命令组合 启动后台作业 cmd & 挂起当前前台作业 Ctrl+Z 恢复挂起的作业到前台 fg 或 fg %1 恢复挂起的作业到后台 bg 或 bg %2 终止作业...(SIGPIPE, SIG_IGN); } 其中,屏蔽第一个信号是为了防止守护进程因未处理的子进程退出而变成僵尸进程,屏蔽第二个信号是为了防止因向已关闭的管道或套接字写入数据导致进程意外终止。
,不会阻塞当前的终端会话,但是此时任务是与终端关联的,如果终端关闭,任务就会被终止。...关于文件描述符 0: 标准输入(stdin) 1: 标准输出(stdout),表示命令的正常输出(通常是命令运行结果的文本或者运行日志)。...即使你退出或关闭当前的 SSH 会话,任务仍然继续运行。...## 退出会话 ctrl+a+d (快捷键) ## 重新进入(恢复)之前创建的会话窗口 screen -r ## 关闭会话 screen -X -S 会话脱离关联,意味着任务将不再受到终端信号(如 SIGHUP,当终端关闭时)影响,任务将继续运行,即使你退出当前会话或关闭终端。
故障现象: 昨日中午接到客户电话,描述道:生产环境有一台服务器通过外网IP登录不上,在内网IP ssh登陆也密码错误;怀疑是被入侵了,立即登陆VMware ESXi管理端登陆此虚拟机查看,然后重起此虚拟机...,结果就启动不了。...报错如下图: “没有更多空间可供虚拟磁盘“***.vmdk”使用,也许可以通过释放相关卷上的磁盘空间并单击“重试”继续此会话,单击“取消”可终止此会话。 ?...问题分析: 查看共享存储的剩余空间仅剩下32G可用,而此服务器的swap空间也是32G, 可推断:出现故障时,共享磁盘的空间已经全部用完,服务器在调用swap空间时,出现资源分配紊乱,导致该服务器处于非活动状态...,关机后,swap空间释放,再开机时,VMware判断没有足够的空间可分配,启动失败。
守护进程在后台运行,不与用户交互,通常没有控制终端。 守护进程的主要目的是执行特定的任务或提供特定的服务,而不需要用户的干预。它们可以是网络服务、系统监控程序、定时任务等。...在作业号后面添加 + 符号,表示将该作业调至前台运行。 作业状态 通常用以下符号表示: Running(运行中):作业正在后台运行。 Stopped(已停止):作业已被暂停或停止。...Done 或 Exited(已完成):作业已经完成。 Terminated(已终止):作业被终止。 ...有时,一个作业可能会被暂停或停止,例如通过按下 Ctrl + Z 键来 暂停一个正在前台运行的作业。 ...返回值: 成功返回新会话的 SID 失败返回 -1 当调用该函数时,会发生以下几件事情: 创建一个新的会话,调用进程成为新会话的领导者,也成为新进程组的领导者,并且新会话没有控制终端(如果有的话会被切断