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

linux 后台运行进程:& , nohup

当我们终端或控制台工作时,可能不希望由于运行一个作业而占住了屏幕,因为可能还有更重要的事情要做,比如阅读电子邮件。对于密集访问磁盘的进程,我们更希望它能够每天的非负荷高峰时间段运行(例如凌晨)。...,终端被该作业占据;可以命令后面加上& 实现后台运行。...(ps -ef | grep 进程号 或者 kill -9 进程号) nohup 使用&命令作业被提交到后台运行,当前控制台没有被占用,但是一但把当前控制台关掉(退出帐户时),作业就会停止运行。...2>&1 是将标准出错 重定向到标准输出,这里的标准输出已经重定向到了out.file文件,即将标准出错也输出到out.file文件中。最后一个&, 是让该命令在后台执行。...如果将他们写到 .sh 脚本中,然后执行脚本,是显示不出来的 比如执行下面这个脚本,jobs 显示不出来: #!

4.3K40

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

& 首先是我们最经常遇到的符号 &,将它附在命令后面可以使进程在后台执行,不会占用前台界面。它实际上是会话中开启了一个后台作业,对作业的操作我们后面再说。...而在 shell 脚本内,setsid 不是进程组长,它不会 fork() 子进程,而是由 bash 来fork() 一个子进程,而 bash 会 wait() 子进程,所以表现得像 setsid ...我们直接开启了某个进程,又想在不中断进程的情况下让它让出前台终端; 这些都要牵涉到今天的第二个模块--作业; 我们终端里运行的命令都可以理解为一个作业,有的占用前台终端,有的在后台默默执行,下面的命令就是为了调度这些作业...结合 ctrl+z 和 bg 命令,我们可以解决上面提出的第一个问题,不停止地将正在占用终端的进程放到后台执行。 fg fg 与 bg 相对,使用它可以把作业放到前台来执行。...一直更新,欢迎 关注 。 参考: setsid为什么会在脚本中阻塞-StackoOerflow Linux 进程、进程组、会话周期、控制终端

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

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

但是这样可以不终止进程的情况下能深入脚本内部一窥究竟。 Ctrl+z 会生成一个SIGTSTP信号,停止shell中运行的任何进程。...16.1.5 修改或移除捕获 脚本中的不同位置进行不同的捕获处理,需要重新使用带有新选项的trap命令。 修改了信号捕获脚本处理信号的方式就会发生变化。 也可以删除以及设置好的捕获。...那么值钱带减号的就变成默认作业了。 16.4.2 重启停止作业 可以将已停止作业作为后台进程或前台进程(会接管你当前工作的终端)重启。 用bg命令实现。 bg 加上作业号。...不加作业号可以重启默认作业。 当有多个作业时必须加上作业号。 实例: ? Ctrl + Z停止作业。 注意:bg 重启是后台作业,ctrl + c 是接受不到的。...以前台模式重启作业,可用带作业号的fg命令。 比如:fg 2 例子就像上面一样,把bg换成fg就好了。 16.5 调整谦让度 多任务操作系统中,内核负责将cpu时间分配给系统上运行的每一个进程。

3K61

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

有了这个线索之后,银时同学立刻看了一下对方测试环境的脚本,简化如下: $ cat test.sh #!/bin/bash cd /data/server/tomcat/bin/ ....交互模式与非交互模式对作业控制(job control)默认方式不同 为什么交互模式下shell不会对后台进程处理SIGINT信号设置为忽略,而非交互模式下会设置为忽略呢?...还是比较好理解的,举例来说,我们先某个前台进程运行时间太长,可以ctrl-z中止一下,然后通过bg %n把这个进程放入后台,同样也可以把一个cmd &方式启动的后台进程,通过fg %n放回前台,然后ctrl-c...而非交互模式下,通常是不需要作业控制的,所以作业控制非交互模式下默认也是关闭的(当然也可以脚本里通过选项set -m打开作业控制选项)。...如果我们test.sh里设置开启作业控制的话,就不会让java进程退出了 #!/bin/bash set -m cd /home/admin/tt/tomcat/bin/ .

94510

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

有了这个线索之后,银时同学立刻看了一下对方测试环境的脚本,简化如下: $ cat test.sh #!/bin/bash cd /data/server/tomcat/bin/ ....交互模式与非交互模式对作业控制(job control)默认方式不同 为什么交互模式下shell不会对后台进程处理SIGINT信号设置为忽略,而非交互模式下会设置为忽略呢?...还是比较好理解的,举例来说,我们先某个前台进程运行时间太长,可以ctrl-z中止一下,然后通过bg %n把这个进程放入后台,同样也可以把一个cmd &方式启动的后台进程,通过fg %n放回前台,然后ctrl-c...而非交互模式下,通常是不需要作业控制的,所以作业控制非交互模式下默认也是关闭的(当然也可以脚本里通过选项set -m打开作业控制选项)。...如果我们test.sh里设置开启作业控制的话,就不会让java进程退出了 #!/bin/bash set -m cd /home/admin/tt/tomcat/bin/ .

3.9K10

linux基础(day24)

8.6 管道符和作业控制 管道符、作业控制 ctrl z //暂停一个任务 jobs //查看后台的任务 bg [id] //把任务调到后台 fg [id] //把任务调到前台 命令后面加&直接丢到后台...(丢到后台去了),回到命令行界面,去操作其他的任务 fg 命令可以把丢在后台的命令,调回前台 可以控制多个任务,将他们暂停掉 jobs 命令,可以把暂停的任务列出来 暂停多个任务,并会显示停止的任务列出来...1.txt [2]+ 已停止 vim 2.txt [root@localhost ~]# fg [id] 命令,把任务调到前台并执行——>不加id号就是执行最后一次的任务...)去运行 结束任务的时候,必须是在前台才能结束——>(否则在后台是无法结束任务的) sleep 1000 命令,暂停一千秒,什么事都不做,一千秒之后把命令窗口恢复回来 [root@localhost...profile,profile又会自动的调用bashrc bashrc是执行shell脚本的时候,用户不用登录,就可以直接执行shell脚本,执行shell脚本就会调用bashrc里面的一些配置 -系统中的

52510

从进程组、会话、终端的概念深入理解守护进程

当我们命令行提示符输入类似./helloworld程序时,程序运行时终端被占用,此时无法执行其它操作。即使使用....) ps:进程和进程组ID都是 10263,父进程是 bash(10179),因为是 Shell 上执行的命令 cat:进程组 ID 与 ps 的进程组 ID 相同,父进程同样是 bash(10179...) 容易理解 Bash 就是Shell进程,Shell 父进程是 sshd;ps 与 cat 通过管道符号一起运行,属于一个进程组,其父进程都是 Bash;一个进程组也被称为「作业」。...会话可以有一个进程组称为会话的「前台作业」,其它进程组为「后台作业」 一个会话可以有一个控制终端,当控制终端有输入和输出时都会传递给前台进程组,比如Ctrl + Z。...会话的意义在于能将多个作业通过一个终端控制,一个前台操作,其它后台运行。

1K20

使用 Ctrl+S停止输出而不用挂起前台进程

之前一直知道使用 Ctrl+Z 挂起前台进程来阻止进程运行,之后可以再通过 shell 的作业控制 (jobs / fg N) 来将后台进程切换为前台,从而继续运行。.../deadloop.sh > 首先可以看到重启的输出序号与重启前的可以接上,所以中间并没有输出丢失,也就是说是进程被暂停了,而不只是输出停止了。...另一方面,我们启动 stap 探测进程间信号的收发,可以 Ctrl+Z 停止进程时收到以下的输出: stap_signal.sh 22       events/3         16688 usleep...write 系统调用,后者停止了 waitpid 系统调用。...如果再打开 IXANY 标志位,则使用任意键都可以重启被停止的输出,而不一定要使用 Ctrl+Q。 最后,还有一个隐藏的前提,就是被暂停的进程在前台有频繁的输出,否则 Ctrl+S 也无用武之地。

70120

linux后台执行命令&和nohup的具体使用方法

当我们终端或控制台工作时,可能不希望由于运行一个作业而占住了屏幕,因为可能还有更重要的事情要做,比如阅读电子邮件。对于密集访问磁盘的进程,我们更希望它能够每天的非负荷高峰时间段运行(例如凌晨)。...& 当在前台运行某个作业时,终端被该作业占据;可以命令后面加上& 实现后台运行。例如:sh test.sh & 适合在后台运行的命令有f i n d、费时的排序及一些s h e l l脚本。...(ps -ef | grep 进程号 或者 kill -9 进程号) nohup 使用&命令作业被提交到后台运行,当前控制台没有被占用,但是一但把当前控制台关掉(退出帐户时),作业就会停止运行...所以使用nohup命令后台运行命令之后,需要使用exit正常退出当前账户,这样才能保证命令一直在后台运行。 ctrl + z 可以将一个正在前台执行的命令放到后台,并且处于暂停状态。...2>&1 是将标准出错重定向到标准输出,这里的标准输出已经重定向到了out.file文件,即将标准出错也输出到out.file文件中。最后一个&, 是让该命令在后台执行。

2.5K31

什么是守护进程?

了解守护进程之前,需要先知道什么是什么是终端?什么是作业?什么是进程组?什么是会话?...shell分前后台作业来控制的不是进程而是作业。一个作业由多个进程组成。Shell可以运行一个前台作业和任意多个后台作业,称为作业控制。bash就是一个独立的作业。...一个会话中,有一个前台作业和若干个后台作业。会话SID是会话手进程的PID。 为什么只能运行一个前台作业?...当我们在前台新起了一个作业,shell就被提到了后台,因此shell就没有办法再继续接受我们的指令并且解析运行了。...setsid() 调用成功,进程成为新的会话组长和新的进程组长,并与原来的登录会话和进程组脱离。

1.1K20

是不是Bash编程老司机,看完这10条细节就知道了

针对 Bash 中一些极容易出错的细节,我们在这里总结了 10 条编程注意事项,希望对各位泛 Linux 环境的开发者有所裨益。...使用后台任务 Bash 中,可以通过命令添加 & 符号实现后台多任务。例如: long_running_command & 把进程放入后台后,还可以通过 fg 命令将其切换到前台。...活用 set 命令 在其他语言中,通常遇到错误的语句时,编译器就会报错并停止运行,但 Bash 不会。...因此为了保证代码的安全性和正确性,我们可以代码中用 set -e 对 Bash 环境进行一些额外设置,-e 表示出现错误就停止。...这也是为什么许多 shell 脚本都以 set -eu 或者 set -eux 等做为开头的原因,因为这样就可以让脚本运行在更安全的环境下。

1.1K71

Bash 老司机也可能忽视的 10 大编程细节

针对 Bash 中一些极容易出错的细节,我们在这里总结了 10 条编程注意事项,希望对各位泛 Linux 环境的开发者有所裨益。...使用后台任务 Bash 中,可以通过命令添加 & 符号实现后台多任务。例如: long_running_command & 把进程放入后台后,还可以通过 fg 命令将其切换到前台。...活用 set 命令 在其他语言中,通常遇到错误的语句时,编译器就会报错并停止运行,但 Bash 不会。...因此为了保证代码的安全性和正确性,我们可以代码中用 set -e 对 Bash 环境进行一些额外设置,-e 表示出现错误就停止。...这也是为什么许多 shell 脚本都以 set -eu 或者 set -eux 等做为开头的原因,因为这样就可以让脚本运行在更安全的环境下。 来源:jvns.ca

86260

8.6 管道符和作业控制

管道符、作业控制 ctrl z //暂停一个任务 jobs //查看后台的任务 bg [id] //把任务调到后台 fg [id] //把任务调到前台 命令后面加&直接丢到后台 管道符的使用 管道符 |..../.bash_profile ./.bashrc ./.cshrc ./.tcshrc ....(丢到后台去了),回到命令行界面,去操作其他的任务 fg 命令可以把丢在后台的命令,调回前台 可以控制多个任务,将他们暂停掉 jobs 命令,可以把暂停的任务列出来 暂停多个任务,并会显示停止的任务列出来...)去运行 结束任务的时候,必须是在前台才能结束——>(否则在后台是无法结束任务的) sleep 1000 命令,暂停一千秒,什么事都不做,一千秒之后把命令窗口恢复回来 [root@localhost...^Z [2]+ 已停止 sleep 200 调到前后台运行的时候,不指定id号,就是默认最后一条执行命令 & 符号,把任务丢到后台去执行 [root@localhost

30110

Linux 中前台进程转后台,并重定向输出

有时候我们直接在终端中执行了命令,等待很长时间发现还需要很久才能执行完,又不想一直开着终端等待结果,可以按照下面的方式,将前台进程转至后台,并重定向输出内容至文件,以便随时连接回来查看执行状态。...示例程序 假设我们需要执行很久的任务是下面这段脚本:每隔五秒打印一段内容至控制台。...前台任务转后台任务 先按 Ctrl+z 中断当前任务: ... Press Ctrl+C to stop. ^Z [1]+ 已停止 ..../test.sh 查看当前 shell 会话中所有正在运行或被停止(suspended)的后台作业的列表: $ jobs [1]+ 已停止 ..../test.sh 使用 bg %n 将指定的停止的后台作业切换到后台运行。%n 是作业编号,例如 bg %1 将作业编号为 1 的作业切换到后台运行。 $ bg %1 [1]+ .

26210

程序计划任务管理

0x01 后台执行 bg 命令 描述:用于将作业放到后台执行(backgroud)使前台可以执行其他任务,该命令的运行效果与指令后面添加&符号;的效果是相同的,都是将其放到系统后台执行....-bash: bg: 任务已经终止 [1]+ 完成 find / -name password 注意:后台恢复执行的命令,是不能和前台有交互的,否则不能恢复到后台执行...fg 命令 描述:用于将后台作业(在后台运行的或者在后台挂起的作业)放到前台终端运行,与bg命令一样若后台任务中只有一个,则使用该命令时可以省略任务号;如果有多个任务可以fg加任务编号调用fg 1 frontground...; fg %工作号 #%工作号的%号可以省略,是工作号不是PID号 ( 作业标识:指定要放到前台作业标识号 ) 基础示例: #示例1.使用fg命令将任务号为1的任务从后台执行转换到前台执行,输入如下命令...脚本 #修改的Cron表达式即可完美解决问题 * */4 * * * ?

3.2K20

Linux 前后台作业切换及脱机管理

Linux bash shell单一终端界面下,我们经常需要管理或同时完成多个作业,如一边执行编译,一边实现数据备份,以及执行SQL查询等其他的任务。...所有的上述的这些工作我们可以一个bash内实现,也就是说同一个终端窗口完成。下面主要描述了Linux下前后台作业切换与管理以及作业脱机的情形下如何管理。...无论是前台作业还是后台作业,两者都来自当前的shell,是当前shell的子程序。    下面是两者的定义。    前台作业:可以由用户参与交互及控制的作业我们称之为前台作业。   ...n      让后台运行的作业n切换到前台来    d、bg %n      让指定的作业n在后台运行    e、kill %n    移除指定的作业n    "n" 为jobs命令查看到的job编号,...00:00:00 /bin/bash .

1K10

docker命令总结:镜像到容器

(查看的是容器前台进程的输出的信息)docker stats MywordPress 查看容器所占用的系统资源docker exec 容器名 容器内执行的命令 容器执行命令docker exec -it...容器名 /bin/bash 登入容器的bash--restart=always 容器的自动启动-h x.xx.xx 设置容器主机名--dns xx.xx.xx.xx 设置容器使用的 DNS 服务器--...dns-search DNS 搜索设置(搜索域);优点,搜索域名时方便,自动补全,缺点,当域名出错时,自动补全会造成更大错误--add-host hostname:IP 注入 hostname IP...github.com/creack/docker-firefox也可以通过 -f Dockerfile 文件的位置:$ docker build -f /path/to/a/Dockerfile ..../nginx--源码包一键安装搭建脚本.sh /root/WORKDIR /root/nginx-1.19.8/RUN bash /root/nginx--源码包一键安装搭建脚本.shCMD /usr/

44120

linux 后台运行方法总结

为什么 该现象与SIGHUP信号有关 POSIX-compliant平台(Solaris,MacOS 等)[1]上,当终端logout时,该终端下所有进程会收到SIGHUP信号 Android, FreeBSD...23:02 pts/12 00:00:00 grep --color=auto receive_signal 查看 receive_signal.txt 已捕捉到SIGHUP信号,并且任务进程已停止.... &) 将一个或多个命名包含在“()”中可以使这些命令子shell 中运行中,将"&"也放入“()”内之后,可实现子shell脱离当前终端,从而摆脱当前终端SIGHUP信号影响 Tips: ()经常在脚本中做目录切换时使用...0 00:02 pts/11 00:00:00 grep --color=auto receive_signal disown 对于已经在运行的任务,nohup和setsid明显已经不适用,可通过作业调度和...,然后再用 fg 来将挂起的进程重新放回前台(也可用 bg 来将挂起的进程放在后台)继续运行。

3.7K20
领券