在linux后台运行脚本的方法和命令

在linux后台运行脚本的方法和命令后台运行脚本执行脚本 test sh test sh 中断脚本 test sh ctrl c 在 1 的基础上将运行中的 test sh 切换到后台并暂停 ctrl z 执行 ctrl z 后 test sh 在后台是暂停状态 stopped 使用命令 bgnumber 让其在后台开始运行 number 是使用 jobs 命令查到的 中的数字 不是 pid 直接在后台运行脚本 test s

后台运行脚本

  1. 执行脚本test.sh:./test.sh
  2. 中断脚本test.sh:ctrl+c
  3. 在1的基础上将运行中的test.sh,切换到后台并暂停:ctrl+z
  4. 执行ctrl+z后,test.sh在后台是暂停状态(stopped),使用命令:bg number让其在后台开始运行(“number”是使用jobs命令查到的 [ ]中的数字,不是pid)

  1. 直接在后台运行脚本test.sh:./test.sh &
  2. 查看当前shell环境中已启动的任务情况:jobs
  3. 将test.sh切换到前台运行:fg %number(”number”为使用jobs命令查看到的 [ ] 中的数字,不是pid)
  4. 中断后台运行的test.sh脚本:先fg %number切换到前台,再ctrl+c;或是直接kill %number

以上两种在后台运行test.sh的方法,当遇到退出当前shell终端时,后台运行的test.sh也就结束了。这是因为以上两种方法使得test.sh在后台运行时,运行test.sh进程的父进程是当前shell终端进程,关闭当前shell终端时,父进程退出,会发送hangup信号给所有子进程,子进程收到hangup以后也会退出。所以要想退出当前shell终端时test.sh继续运行,则需要使用nohup忽略hangup信号。

  1. 不中断的在后台运行test.shnohup ./test.sh &(test.sh的打印信息会输出到当前目录下的nohup.out中)
  2. 使用jobs可看到test.sh处于running状态
  3. 使用ps -ef |grep test.sh可查看到正在运行的test.sh脚本进程
  4. 退出当前shell终端,再重新打开,使用jobs看不到正在运行的test.sh,但使用ps -ef可以看到

在后台不中断的运行test.sh,可以使用nohup忽略hangup信号,或者使用setsid将其父进程改为init进程(进程号为1)

  1. 不中断的在后台运行test.sh另一个命令setsid ./test.sh &
  2. 使用ps -ef |grep test.sh可看到test.sh进程的父进程id为1

测试脚本

#!/bin/bash int=1 while(( $int<=100 )) do echo $int let "int++" sleep 1 done 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/201432.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 上午9:24
下一篇 2026年3月20日 上午9:24


相关推荐

  • 中标麒麟安装deb命令_麒麟源码

    中标麒麟安装deb命令_麒麟源码**中标麒麟NeoKylin-SDK里都有哪些库文件**下边是中标麒麟1-8和14的安装包内容。希望对中标麒麟开发的同学能有些帮助。[root@bogonNeoKylin-SDK]#shinstall.shPleaseselectwhichgroupyouwanttoinstall:1)C-development5)gnome-soft…

    2022年8月10日
    96
  • Boost之LockFree[通俗易懂]

    Boost之LockFree[通俗易懂]Boost

    2022年7月19日
    16
  • Spring+MyBatis实例详解「建议收藏」

    Spring+MyBatis实例详解「建议收藏」1.项目结构:                2.项目的Maven依赖:&lt;properties&gt; &lt;spring-version&gt;4.3.21.RELEASE&lt;/spring-version&gt; &lt;/properties&gt; &lt;dependencies&gt; &lt;dependen…

    2022年6月24日
    23
  • 520表白季,教你用matlab画动态心形曲线图,可自动保存GIF格式图片,送给女朋友,她们一定会惊讶,赶紧收藏!!!

    520表白季,教你用matlab画动态心形曲线图,可自动保存GIF格式图片,送给女朋友,她们一定会惊讶,赶紧收藏!!!昨天发表了一篇用python教你画心形图表白的文章:想要表白的看这里,教你用python画不同类型的心形图虏获芳心,值得收藏!!里面详细介绍了各种心形图的画法以及最终的表白神器,值得点赞收藏!!同样matlab也可以实现相同的功能并且还可以做得更好,今天就用教你用matlab画动态心形曲线图,不信请看下面:虏获芳心matlab画动态心形曲线图matlab画动态心形曲线图(基础版)matlab画3D心形图备注matlab画动态心形曲线图利用数学上的格式f(x)=x^2^/^3+e/3*(π-x^2

    2022年10月17日
    4
  • chown 用法

    chown 用法chown 将指定文件的拥有者改为指定的用户或组 用户可以是用户名或者用户 ID 组可以是组名或者组 ID 文件是以空格分开的要改变权限的文件列表 支持通配符 系统管理员经常使用 chown 命令 在将文件拷贝到另一个用户的名录下之后 让用户拥有使用该文件的权限 nbsp 1 命令格式 chown nbsp 选项 nbsp 所有者 组 nbsp 文件 2 命令功能 通过 chown

    2026年3月17日
    1
  • PAD SET_pthread_join函数

    PAD SET_pthread_join函数padStart()方法,padEnd()方法ES2017引入了字符串补全长度的功能。如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全。’x’.padStart(5,’ab’)//’ababx”x’.padStart(4,’ab’)//’abax”x’.padEnd(5,’ab’)//’xabab”x’.pad

    2025年10月17日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号