首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

linux 后台运行进程:& , nohup

在后台运行作业时要当心:需要用户交互命令不要放在后台执行,因为这样你机器就会在那里傻等。不过,作业在后台运行一样会将结果输出到屏幕上,干扰你工作。...(ps -ef | grep 进程号 或者 kill -9 进程号) nohup 使用&命令后,作业被提交到后台运行,当前控制台没有被占用,但是一但把当前控制台关掉(退出帐户时),作业就会停止运行。...pid 前台进程终止:ctrl+c 前后台进程切换与控制 ctrl + z 命令 将一个正在前台执行命令放到后台,并且处于暂停状态。...思考 问题1-为什么ssh一关闭,程序就不再运行了 元凶:SIGHUP 信号 让我们来看看为什么关掉窗口/断开连接会使得正在运行程序死掉。...因为他们程序特殊,比如httpd –k start运行这个以后,他不属于sshd这个进程组 而是单独进程组,所以就算关闭了ssh,和他也没有任何关系!

4.3K40

Linux下几种运行后台任务方法

问题引入 程序员最不能容忍是在使用终端时候往往因为网络,关闭屏幕,执行 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 .

2.6K60
您找到你想要的搜索结果了吗?
是的
没有找到

Linux进程管理详细解读

如果标准错误是一个终端,那么把指定命令写给标准错误所有输出作为标准输出重定向到相同文件描述符。...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

91930

linux screen 命令详解(可以中断终端界面运行

linux screen 命令详解 一、背景 系统管理员经常需要SSH 或者telent 远程登录到Linux 服务器,经常运行一些需要很长时间才能完成任务,比如系统备份、ftp 传输等等。...GNU Screen可以看作是窗口管理器命令行界面版本。它提供了统一管理多个会话界面和相应功能。 会话恢复 只要Screen本身没有终止,在其内部运行会话都可以恢复。...另一个关闭窗口方法是使用C-a k,这个快捷键杀死当前窗口,同时也将杀死这个窗口中正在运行进程。...如果一个Screen会话中最后一个窗口被关闭了,那么整个Screen会话也就退出了,screen进程会被终止。...除了依次退出/杀死当前Screen会话中所有窗口这种方法之外,还可以使用快捷键C-a :,然后输入quit命令退出Screen会话。需要注意是,这样退出会杀死所有窗口并退出其中运行所有程序。

3.7K21

linux screen 命令详解(可以中断终端界面运行

linux screen 命令详解 一、背景 系统管理员经常需要SSH 或者telent 远程登录到Linux 服务器,经常运行一些需要很长时间才能完成任务,比如系统备份、ftp 传输等等。...GNU Screen可以看作是窗口管理器命令行界面版本。它提供了统一管理多个会话界面和相应功能。 会话恢复 只要Screen本身没有终止,在其内部运行会话都可以恢复。...另一个关闭窗口方法是使用C-a k,这个快捷键杀死当前窗口,同时也将杀死这个窗口中正在运行进程。...如果一个Screen会话中最后一个窗口被关闭了,那么整个Screen会话也就退出了,screen进程会被终止。...除了依次退出/杀死当前Screen会话中所有窗口这种方法之外,还可以使用快捷键C-a :,然后输入quit命令退出Screen会话。需要注意是,这样退出会杀死所有窗口并退出其中运行所有程序。

4K30

Linux - 请允许我静静地后台运行

会话 会话(session)是一个或多个进程组集合,它开始于用户登陆终端,结束于用户退出登陆。其义如其名,就是指用户与系统一次对话全程。...这是因为用户注销或者网络断开时,SIGHUP信号会被发送到会话所属子进程,而此 SIGHUP 默认处理方式是终止收到该信号进程。所以若程序中没有捕捉该信号,当终端关闭后,会话所属进程就会退出。...我们常将 nohup 和 & 搭配到一块使用,执行命令如下 nohup command >/dev/null 2>&1 & 这样,就可以放心等待进程运行结果了。...根据上面的概念我们得知终端关闭后进程退出是因为会话首进程向进程发送了 SIGHUP 信号,setsid 就厉害了,它直接打开一个新会话来执行命令,那么原会话终端状态就再也不会影响到此进程了。...jobs jobs 是作业基础命令,用它可以查看正在运行作业信息,其输出如下: jobs [1]- Running php test.php & [2]+ Stopped

1.7K50

Linux screen 命令

背景 系统管理员经常需要SSH 或者telent 远程登录到Linux 服务器,经常运行一些需要很长时间才能完成任务,比如系统备份、ftp 传输等等。...会话恢复 只要Screen本身没有终止,在其内部运行会话都可以恢复。这一点对于远程登录用户特别有用——即使网络连接中断,用户也不会失去对已经打开命令行会话控制。...另一个关闭窗口方法是使用C-a k,这个快捷键杀死当前窗口,同时也将杀死这个窗口中正在运行进程。...如果一个Screen会话中最后一个窗口被关闭了,那么整个Screen会话也就退出了,screen进程会被终止。...除了依次退出/杀死当前Screen会话中所有窗口这种方法之外,还可以使用快捷键C-a :,然后输入quit命令退出Screen会话。 需要注意是,这样退出会杀死所有窗口并退出其中运行所有程序。

1.8K30

Tomcat进程意外退出,元凶居然是他...

那就只剩下Signal情况了;经过一番排查后,发现每次tomcat意外退出时间与ssh会话结束时间正好吻合。...这种情况下,如果用户直接关闭ssh终端窗口(用鼠标或快捷键),则java进程也会退出。而如果先ctrl-c终止test.sh进程,然后再关闭ssh终端的话,则java进程不会退出。...我们推测是ssh窗口在关闭时,对当前交互shell以及正在运行test.sh等子进程发送某个退出Signal,找了一台装有systemtap机器来验证,所用stap脚本是从涧泉同学那里copy...(进程组)是相同,这时我们用kill -2是可以杀掉sleep 1000进程。...不开启作业控制的话,脚本里后台进程可以通过设置忽略SIGINT信号来避免父进程对组中成员传播,因为对它来说这个信号已经没有意义。

3.9K10

Tomcat 进程意外突崩,元凶居然是它...

那就只剩下Signal情况了;经过一番排查后,发现每次tomcat意外退出时间与ssh会话结束时间正好吻合。...这种情况下,如果用户直接关闭ssh终端窗口(用鼠标或快捷键),则java进程也会退出。而如果先ctrl-c终止test.sh进程,然后再关闭ssh终端的话,则java进程不会退出。...我们推测是ssh窗口在关闭时,对当前交互shell以及正在运行test.sh等子进程发送某个退出Signal,找了一台装有systemtap机器来验证,所用stap脚本是从涧泉同学那里copy...(进程组)是相同,这时我们用kill -2是可以杀掉sleep 1000进程。...不开启作业控制的话,脚本里后台进程可以通过设置忽略SIGINT信号来避免父进程对组中成员传播,因为对它来说这个信号已经没有意义。

92410

Linux :忘记使用nohup该如何补救

运行了一个程序两个小时之后,你心想:再有一个小时程序就运行完了,于是你兴致勃勃准备看结果。...此时你突然发现自己没有使用 nohup,这就意味着这个程序在自己离开之后会死掉。之前两个小时运行时间就浪费了。 于是你满怀悔恨按下了CTR+c,然后使用 nohup 重新运行程序。...原因是:SSH会话关闭时,ssh所关联pty关闭,系统会给这个pty所关联session中所有进程发送SIGHUP信号,SIGHUP默认信号处理程序是终止进程,除非进程自己处理了SIGHUP。...3.2 jobs jobs命令用来查看当前有多少在后台运行。 在Linux中,启动、停止、终止以及恢复作业这些功能统称为作业控制。...作业控制中关键命令是jobs命令,jobs命令允许查看shell当前正在处理作业。jobs命令中输出有加号和减号,带加号作业被当做默认作业,带减号为下一个默认作业

1.4K30

Linux中作业控制命令

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 & 搭配,帮助长时间后台运行作业,在你退出系统,依旧可运行

2.4K30

如何使用tmux终端多路复用器

会话启动后,只要腾讯云CVM服务器正在运行,或者直到您停止会话,它将继续运行。您可以注销当前会话,然后重新连接到上一个会话。...可以将多个窗口连接到同一会话,并根据需要在它们之间切换。当您想要并行运行多个作业时,这会很有用。...再次按相同组合可退出缩放模式 出口 关闭活动窗格 Prefix + x 强制在窗格中终止无响应进程 管理tmux会话 有时甚至多个窗口和窗格都是不够,您需要通过将布局分组到单独会话中来逻辑地分离布局...但是只有当没有另一个以相同字符串开头命令时,才有效。...再次按相同组合可退出缩放模式 tmux kill-server 销毁所有会话终止所有进程 创建tmux配置文件 当你对tmux感到满意时,你可能想要改变一些默认值。

2K30

【linux命令讲解大全】175.轻松掌握Linux操作利器——Screen会话管理工具

reboot 重新启动正在运行Linux操作系统 补充说明 reboot命令用来重新启动正在运行Linux操作系统。...会话恢复 只要Screen本身没有终止,在其内部运行会话都可以恢复。这一点对于远程登录用户特别有用——即使网络连接中断,用户也不会失去对已经打开命令行会话控制。...另一个关闭窗口方法是使用Ctrl+a键,然后按下k键,最后当提示你是否要杀死这个会话时按下y键,这个快捷键会杀死当前窗口,同时也将杀死这个窗口中正在运行进程。...如果一个Screen会话中最后一个窗口被关闭了,那么整个Screen会话也就退出了,screen进程会被终止。...除了依次退出/杀死当前Screen会话中所有窗口这种方法之外,还可以使用快捷键C-a :,然后输入quit命令退出Screen会话。需要注意是,这样退出会杀死所有窗口并退出其中运行所有程序。

13310

VMware提示:没有更多空间可供虚拟磁盘“***.vmdk“使用 所引发故障及处理

故障现象: 昨日中午接到客户电话,描述道:生产环境有一台服务器通过外网IP登录不上,在内网IP ssh登陆也密码错误;怀疑是被入侵了,立即登陆VMware ESXi管理端登陆此虚拟机查看,然后重起此虚拟机...,结果就启动不了。...报错如下图: “没有更多空间可供虚拟磁盘“***.vmdk”使用,也许可以通过释放相关卷上磁盘空间并单击“重试”继续此会话,单击“取消”可终止会话。 ?...问题分析: 查看共享存储剩余空间仅剩下32G可用,而此服务器swap空间也是32G, 可推断:出现故障时,共享磁盘空间已经全部用完,服务器在调用swap空间时,出现资源分配紊乱,导致该服务器处于非活动状态...,关机后,swap空间释放,再开机时,VMware判断没有足够空间可分配,启动失败。

2.3K40

Linux中screen命令及使用方法

官方网址:http://www.gnu.org/software/screen/ GUN Screen: image.png 在Screen环境下,所有的会话都独立运行,并拥有各自编号、输入、输出和窗口缓存...screen重要性 screen重要性,主要是体现在它可以方便在服务器上一直运行,只要服务器没有宕机,没有断电它就可以做到不用停止。...其实后端工程师经常会遇到,要通过执行脚本处理一些数据,但这个脚本可能需要执行半天或者几天,screen就是最佳选择了,过一段时间登录到服务器上查看下运行状态,是否运行完成。没有完成挂起来继续运行。...断开某个会话 D 与-d命令相同,但是会logout原来在screen里用户 在每个screen 会话下,所有命令都以 ctrl+a开始 参数 说明 ctrl+a d detach会话,将目前...screen -S test [detached from 3934.test] exit 退出登录,等一段时间然后再登录上去,查看下脚本是否还在执行 ssh screen -ls There are

1.5K50

《Linux命令行与shell脚本编程大全》第十六章 控制脚本

16.2.2 运行多个后台作业 同时启动多个后台作业就可以了。 在终端会话中使用后台进程要注意,ps命令输出中,每一个后台进程都和终端会话(pts/0)终端联系在一起。...如果终端会话退出,那么后台进程也会退出。 16.3 在非控制台下运行脚本 需求:在终端启动脚本,让脚本一直运行到结束,即使退出了终端会话。 nohup命令可以做到。...16.4 作业控制 重启停止进程需要向其发送一个SIGCONT信号。 启动、停止、终止、恢复作业这些功能统称为作业控制 16.4.1 查看作业 jobs命令允许查看shell当前正在处理作业。...调度优先级是内核分配给进程CPU时间。 在linux系统中,由shell启动所有进程调度优先级默认都是相同, 调度优先级是个整数值(-20 -- +19)。...如果没有关联电子邮件就无法获得输出,所以最好在脚本中对STDERR和STDOUT进行重定向 at-M选项用来屏蔽作业产生输出信息。 例子:就是重定向例子。这里不写了。 3.

3K61

Linux内核编程--进程组和守护进程

获得一个进程所在进程组ID用getpgid(pid)。 作业:是一个进程组,作业分为前台作业(前台进程组),后台作业(后台进程组) 会话会话是若干进程组集合。...会话有一个前台进程组和多个后台进程组。对于一个打开控制终端,会话 开始于用户登录,终止于用户退出。...守护进程没有控制终端通常源于它们由系统初始化脚本启动,然而守护进程也可能从某个终端由用户在shell提示符下键入命令行启动,这样守护进程必须亲自脱离于控制终端关联,从而避免与作业控制、终端会话管理...该函数返回时,父进程实际上是上一次调用fork产生子进程。然后这个父进程被终止,留下新子进程继续运行。...: 常用Linux进程分析命令: 查看正在运行进程:ps -ef 查看当前所有进程:ps axj 查看占用端口进程:lsof -i:8086 查看用户username进程所打开文件

2.9K20

Linux运行与控制后台进程方法

我们经常会碰到这样问题,用ssh登录了远程Linux服务器,运行了一些耗时较长任务,结果却由于网络等不稳定导致任务中途失败。...将当前正在前台运行进程放到后台运行: 先敲下快捷键:ctrl +z //暂停当前正在运行进程。...再执行:bg 终止当前正在前台运行进程: 直接敲下快捷键:ctrl +c 5.disown 亡羊补牢,为没有使用nohup与setsid进程加上忽略HUP信号功能。...6.通过screen来实现稳定后台运行 screen是建立一个新全屏虚拟会话终端,这个会话只有在手动输入exit时候才会退出,在这个会话里执行命令不用担心HUP信号会对我们进程 造成影响,因此也不用给每个命令前都加上...ctrl +ad //输入快捷键ctrl +a和d,可暂时退出当前会话。 exit //进入指定会话后执行exit即可关闭该会话

1.9K20

Linux:如何在脚本开发中实现程序在用户退出后仍保持运行

使用nohup命令 nohup命令可以将程序置于后台运行,并在用户退出后继续运行。它会忽略所有的SIGHUP信号,从而防止程序因用户注销而终止。 sh nohup ..../my_script.sh > my_script.log 2>&1 & 使用disown命令 disown命令可以将一个已经在后台运行作业从当前Shell作业列表中移除,这样在用户退出时,该作业也不会被发送.../my_script.sh & 使用tmux或screen工具 tmux和screen是两个流行终端复用工具,它们可以创建一个持久会话,在会话运行程序不会因为用户退出终止。...首先,确保atd守护进程正在运行: sh sudo systemctl start atd 然后,使用at命令调度任务: sh echo "....它主要优点包括: 会话管理:tmux 可以创建、分离和重新连接会话,使得程序可以在不同会话中独立运行而不会因为终端关闭而中断。

17610

进程ID及进程间关系

由进程创建所有线程都有相同线程组ID(TGID)。线程有自己 PID,它TGID 就是进程主线程 PID。如果进程没有使用线程,则其 PID 和 TGID 相同。...在子进程退出且父进程完成回收前,子进程变成僵尸进程。僵尸进程持续时间通常比较短,在父进程回收它资源后就会消亡。如果父进程没有处理子进程终止,那么子进程就会一直处于僵尸状态。...会话是用户登录系统到退出所有活动,从登录到结束前创建所有进程都属于这次会话。登录后第一个被创建进程(通常是 shell),被称为 会话 leader。 进程组用于作业控制。...一个终端上可以启动多个作业,也就是进程组,并能控制哪个作业在前台,前台作业可以访问终端,哪些作业运行在后台,不能读写终端。 我们来看一个会话和进程组例子。...当终端关闭时,会向整个会话发送 SIGHUP 信号,通常情况下,这个会话所有进程都会被终止

43023
领券