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

如何使bash脚本从进程中分离出来,然后重新附加到进程中?

要使bash脚本从进程中分离出来,然后重新附加到进程中,可以使用以下方法:

  1. 使用nohup命令:nohup命令可以在后台运行脚本,并将输出重定向到nohup.out文件。该命令的使用格式为:nohup command &。例如,要运行名为script.sh的脚本并将其分离出当前进程,可以使用以下命令:nohup ./script.sh &。这将使脚本在后台运行,并将输出保存到nohup.out文件中。
  2. 使用disown命令:disown命令可以将正在运行的作业从当前shell会话中分离出来,使其成为一个独立的进程。首先,使用&符号将脚本放入后台运行,然后使用disown命令将其分离。例如,要运行名为script.sh的脚本并将其分离出当前进程,可以按照以下步骤操作:
    • 运行脚本:./script.sh &
    • 使用jobs命令查看作业ID(job ID):jobs
    • 使用disown命令将作业分离:disown %作业ID(例如,disown %1)
  • 使用screen命令:screen命令可以创建一个虚拟终端会话,并在其中运行脚本。这样,即使关闭了当前终端窗口,脚本仍然会在后台继续运行。首先,使用screen命令创建一个新的会话,然后在该会话中运行脚本。以下是使用screen命令的示例:
    • 创建新会话:screen -S session_name
    • 在会话中运行脚本:./script.sh
    • 按下Ctrl + A,然后按下D键分离会话

重新附加到进程中的方法取决于使用的分离方法:

  1. 使用nohup命令分离的脚本可以使用以下命令重新附加到进程中:
    • 查找脚本的进程ID(PID):ps aux | grep script.sh
    • 使用以下命令重新附加到进程中:nohup ./script.sh &
  • 使用disown命令分离的脚本可以使用以下命令重新附加到进程中:
    • 查找脚本的进程ID(PID):ps aux | grep script.sh
    • 使用以下命令重新附加到进程中:./script.sh &
  • 使用screen命令分离的脚本可以使用以下命令重新附加到进程中:
    • 列出所有会话:screen -ls
    • 重新附加到会话:screen -r session_name

以上是使用bash脚本从进程中分离出来,然后重新附加到进程中的方法。请注意,这些方法适用于Linux和Unix系统。对于Windows系统,可能需要使用其他工具或方法来实现类似的功能。

腾讯云相关产品和产品介绍链接地址:

  • nohup命令:腾讯云无相关产品,可参考Linux文档:https://man7.org/linux/man-pages/man1/nohup.1.html
  • disown命令:腾讯云无相关产品,可参考Linux文档:https://man7.org/linux/man-pages/man1/disown.1.html
  • screen命令:腾讯云无相关产品,可参考Linux文档:https://man7.org/linux/man-pages/man1/screen.1.html
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Linux后台运行程序最实用的两种方式

,导致花费大量时间执行的程序又要重新跑;真难受!...目录 应对手段 方式一:nohup 命令 & 方式二:screen 1、如何使用screen 2、screen 工具需安装 3、screen 后台运行原理 附、一张有故事的照片(十三) 应对手段   ...简单的说,screen 提供了 ANSI/VT100 的终端模拟器,使它能够在一个真实终端下运行多个全屏的伪终端,每个伪终端我们称之为一个session。   ...└─sshd───sshd───bash───pstree   我们可以看出,未使用 screen 时我们所处的 bash 是 sshd 的子进程,当 ssh 断开连接时,HUP...├─2*[sendmail]   如图可见,bash 是 screen 的子进程,而 screen 是 init(PID为1)的子进程。

3.5K21
  • 容器云——Docker容器技术基础介绍

    Docker使得我们能够将我们的应用从基础设施中分离出来。基础设施就是指的服务器等基础硬件设施,怎么理解分离呢?就像Java一样,我们写的Java程序可以借助Java虚拟机实现一次编写、处处运行。...,然后重新部署到测试环境进行测试和验证; 当测试完成后,将这个修复交付给客户就像将修改后的镜像推送到生产环境一样简单。...当修改了Dockerfile并重新构建镜像时,只有那些改变的层才会被重新构建。与其他虚拟化技术相比,这是使镜像如此轻量级、小型和快速的部分原因。 容器 容器是镜像的可运行实例。...docker run命令使用案例: 下面的命令运行了一个Ubuntu容器,附加了交互到本地命令行会话,然后运行了/bin/bash。...Docker启动这个容器,并执行/bin/bash命令。由于容器以交互方式附加到了终端(因为使用了-i -t选项),所以我们可以从键盘输入命令并可以在终端看到输出结果。

    1.7K21

    如何在多个 Linux 服务器上运行多个命令

    使用它,您可以从 shell 脚本向所有 ssh 进程发送输入。 创建 Shell 脚本 因此,您需要首先准备一个脚本,其中包含您要在不同服务器上执行的 Linux 命令。...在此示例中,我们将编写一个脚本,该脚本将从多个服务器收集以下信息: 检查服务器的正常运行时间 检查谁登录以及他们在做什么 根据内存使用情况列出前 5 个正在运行的进程。...首先使用您喜欢的编辑器创建一个名为 commands.sh 的脚本。 # vi commands.sh 接下来,将以下命令添加到脚本中,如图所示。 #!...然后如图所示使脚本可执行。...-I – 读取输入并发送到每个 ssh 进程。 往期推荐 比较基因组:点图介绍与可视化 如何在 Linux 中使用 Bash For 循环 轻松配置深度学习模型 ?

    32620

    【docker】入门

    CLI 使用 Docker API 通过编写脚本或直接使用 CLI 命令来控制 Docker 守护进程或与之交互。许多其他 Docker 应用程序使用底层 API 和 CLI。.... ---- 是什么:开源的应用容器引擎,而一个容器containers其实是一个虚拟化的独立的环境 作用:让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux...概述 本指南包含有关如何开始使用 Docker 的分步说明。...Dockerfile 中的每条指令在图像中创建一个层。当您更改 Dockerfile 并重新生成映像时,只有那些已更改的层才会重新生成。...下面的命令运行一个容器,交互式地附加到本地命令行会话,并运行. ubuntu/bin/bash $docker run-i-t ubuntu/bin/bash 运行此命令时,将发生以下情况(假设您使用默认注册表配置

    1.4K30

    《Linux命令行与shell脚本编程大全》第十五章 呈现数据

    这包括输入和数出进程。 Linux用文件描述符来标识每个文件对象。 它是一个非负整数,可以唯一标识会话中打开的文件。...每个进程一次最多可以有九个文件描述符 bash shell保留的前3个文件描述符(0、 1、 2) 1.STDIN 标准输入(0) STDIN文件代表shell的标准输入。...用起来要小心:由于是对同一个文件进行数据读写,shell会维护一个内部指针,指明在文件中的当前位置。任何读或写都是从文件指针上次的位置开始。 例子: 1 #!...如何关闭: 将要关闭的文件描述符重定向到特殊符号 &- 一旦关闭后,就不能在脚本中向他写入数据,否则shell会产生错误信息。 例子:   1 #!...>> 将cat命令的输出追加到由$outfile变量指定的文件中。 cat命令的输入不在取自标准输入,而是被重定向到脚本中存储的数据。 EOF符号标记了追加到文件中的数据的起止。

    1.4K60

    【Linux】环境变量常见指令操作&基本实验(入门必看!)

    ,重新登录xshell它会自动恢复 (每一次重新登陆,都会给我们形成新的bash解释器并且新的bash解释器会从配置文件自动读取新城自己的环境变量表信息) 6.export(导出到环境变量表中)(重点...) 具体实验在四章节 export : 直接改变bash/shell环境变量本身 , 添加到当前进程上下文的环境变量表中 ,重新登录xshell会恢复 注意事项:修改的只是 内存中的环境变量 ,重新登录...内存中的环境变量 ,重新登录xshell它会自动恢复 这是因为:每一次重新登陆,都会给我们形成新的bash解释器并且新的bash解释器会从 父进程bash的配置文件 自动读取新城自己的环境变量表信息...(隐藏)配置文件名称.bash_profile 用vim进入配置文件.bash_profile vim ~/.bash_profile 注:把多个命令写到一个文件中,这就是 shell脚本 ; 启动...shell时,会从上到下挨个执行命令,进行配置; 每一次重新登陆,都会给我们形成新的bash解释器并且新的bash解释器会从 配置文件中 自动读取形成自己的 环境变量表信息

    14110

    【Linux】初学者需要知道的三个环境变量实验

    回答:因为我们写的程序的路径没有保存到PATH环境变量中,系统无法沿着路径找到并执行程序 我们通过 PATH= $PATH:xxxxxxxxx(追加),把mytouch的路径添加到环境变量中,可以看到我们.../shell环境变量本身 我们知道,命令行解释器启动的进程都是shell/bash的 子进程 ,子进程的命令行参数和环境变量都是父进程bash给我们传递的!...内存中的环境变量 ,重新登录xshell它会自动恢复 这是因为:每一次重新登陆,都会给我们形成新的bash解释器并且新的bash解释器会从 父进程bash的配置文件 自动读取新城自己的环境变量表信息...(隐藏)配置文件名称.bash_profile 用vim进入配置文件.bash_profile vim ~/.bash_profile 注:把多个命令写到一个文件中,这就是 shell脚本 ; 启动...shell时,会从上到下挨个执行命令,进行配置; 每一次重新登陆,都会给我们形成新的bash解释器并且新的bash解释器会从 配置文件中 自动读取形成自己的 环境变量表信息

    11110

    linux 后台运行方法总结

    实现方式 实现进程免受终端SIGHUP信号影响的原理主要有两种: 使进程屏蔽SIGHUP信号,如nohup 使进程脱离当前终端,这样当前终端的SIGHUP信号自然不会引起进程中断,如disown,setsid.... &) 将一个或多个命名包含在“()”中可以使这些命令在子shell 中运行中,将"&"也放入“()”内之后,可实现子shell脱离当前终端,从而摆脱当前终端SIGHUP信号影响 Tips: ()经常在脚本中做目录切换时使用...另,使用 disown %1 也可达到相同效果,不过当前任务会从任务列表移除,但仍可以通过ps查看进程 Tips: 在我们的日常工作中,我们可以用 Ctrl z 来将当前进程挂起到后台暂停运行,执行一些别的操作...,然后再用 fg 来将挂起的进程重新放回前台(也可用 bg 来将挂起的进程放在后台)继续运行。...那如果从终端本身解决问题,即,使终端不关闭呢?那就是 screen、 tmux了!

    3.8K20

    入侵检测之syscall监控

    常见的情况是脚本允许正常终止和处理常见的键盘中断(例如ctrl + c和ctrl + d),实际上系统发送了SIGINT信号给脚本进程,SIGINT信号的默认处理方式就是退出程序。...常见的情况是脚本允许正常终止和处理常见的键盘中断(例如ctrl + c和ctrl + d),实际上系统发送了SIGINT信号给脚本进程,SIGINT信号的默认处理方式就是退出程序。...信号的主要用途: 1.使一个进程意识到一个特殊事件发生了(不同的事件用不同的signal标识) 2.并使目标进程进行相应处理(eg: 执行的信号处理函数,signal handler).相应的处理也可以是忽略它...Ptrace系统调用可用于附加到正在运行的进程并在运行时对其进行修改 3. VDSO劫持通过操纵从linux-vdso.so共享库映射的代码存根,对ELF二进制文件执行运行时注入。...其主要原理为将标准输入以及标准输出是否指向一个socket或pipe 以最简单的bash反弹为例: Linux bash是从左向右读取这条命令的,首先系统会创建bash -i子进程,并分配文件描述符:

    2.6K10

    Shell脚本调用另一个脚本的三种方法

    first file 4.三者的区别 使用source命令和点号.是等价了,类似于C/C++中的#include预处理指令,都是将指定的脚本内容拷贝至当前的脚本中,由一个Shell进程来执行。...使用sh命令来调用另外的脚本和前面两种方法有着本质的区别。使用sh命令则会开启新的Shell进程来执行指定的脚本,这样的话,父进程中的变量在子进程中就无法访问。...我们如何让子进程访问父进程中变量呢?可以使用export命令。...(3)全局变量:在脚本中定义,仅在当前Shell脚本中有效,其他Shell脚本进程不能访本,其作用域从定义的位置开始,到脚本结束或被显示删除的地方为止。.../JAVA_HOME/lib;$JAVA_HOME/jre/lib 注意:修改文件后要想马上生效需要执行source ~/.bash_profile,不然只能在下次重新登录时才生效。

    12.2K50

    Shell 进阶指南

    hr - 适用于终端的 hstr - Bash 历史建议框 k - k 是一个使目录列表更可读的 Zsh 脚本,它增添了 Git 状态、文件颜色、以及腐朽的日期 k alias - 获得用于单行的酷...alias marker - 将你的 shell 命令加到书签 parallel - 以并行化方式从标准输入构造并执行 shell 命令行 pathpicker - 允许将 grep、搜索、git 等的输出结果作为输入...ansiweather - 终端中的天气预报,包含 ANSI 颜色及 Unicode 符号 bashblog - 处理 blog 投递的 Bash 脚本 choosealicense-cli - 从终端选授權合約...shell 函数 dispatch - 使用 50 行可移植 shell 脚本写成的命令行参数解析器 is.sh - 内置 test 命令的替代品,使 “if” 语句更漂亮 mo - 使用纯 Bash...及 Bash 陷阱 Google 的 Shell 风格指南 Linux 文档项目: Bash 编程 - 简介/如何做 Linux 文档项目: 高级 Bash 脚本指南 WikiBooks: Bash Shell

    2.8K71

    【Linux】进程详解:命令行参数、环境变量及地址空间

    每一次重新登陆,都会给我们形成新的bash解释器并且新的bash解释器自动从读取形成自己的环境变量表信息 实质其实是每次重新登陆都会读取系统自带的配置文件.bash_profile,配置文件中的内容,为我们...bash上下文的环境变量中 案例: 我们用export指令可以将自己写的环境变量添加到父进程bash的进程上下文中,但是如果我们重新登录后,之前导入的变量是否还会存在?...答案很明显,我们变量之会被添加到内存中,并不会改变配置文件,所以重新登录后并不会被保存 因此如果我们想让我们的环境变量能够保存可以直接在配置文件中更改。...如果在这个Shell中执行脚本,脚本中的 SHLVL=2 。...当在子进程要修改父进程中的数据的时候,父进程中的数据会重新的拷贝一份,然后子进程再对数据进行修改。

    14010

    如何编写bash脚本以便在进程死机时重新启动进程

    问: 我有一个python脚本,它将检查队列并对每个元素执行操作: # checkqueue.py while True: check_queue() do_something() 我如何编写一个...bash脚本来检查它是否正在运行,如果没有,则启动它。...假设你的进程名为procA,监控它的进程名为procB,则需要procB成为procA的父进程。因为只有启动你的进程的进程才能可靠地等待它结束。而这在Bash中很容易实现。...然后需要做的就是启动这个bash脚本,它将监控procA并在必要时重新启动它。如果你想在(操作系统)启动时启动监控脚本,你可以用@reboot规则在用户的 cron(1) 中调度它。...使用crontab -e命令打开你的cron规则,然后添加一个规则来启动你的监控脚本: @reboot /usr/local/bin/procAmonitor 至于不使用PID文件的理由: 1.

    19220

    使程序在Linux下后台运行

    # ctrl+c //结束当前任务 注:如果要使在前天执行任务放到后台运行,则先要用ctrl+z挂起该任务,然后用bg使之后台执行。...附: 在Linux中,如果要让进程在后台运行,一般情况下,我们在命令后面加上&即可,实际上,这样是将命令放入到一个作业队列中了: $ ..../test.sh & 对于已经在前台执行的命令,也可以重新放到后台执行,首先按ctrl+z暂停已经运行的进程,然后使用bg命令将停止的作业放到后台运行: $ ..../test.sh 515 413 21734 0 11:49 pts/12 00:00:00 grep test 上面的试验演示了使用nohup/setsid加上&使进程在后台运行,...还有一种更加强大的方式是使用screen,首先创建一个断开模式的虚拟终端,然后用-r选项重新连接这个虚拟终端,在其中执行的任何命令,都能达到nohup的效果,这在有多个命令需要在后台连续执行的时候比较方便

    4.3K31

    shell变量详解

    我们讨论一下计算机是如何通过让我们人类快速将数据存在内存,如何从内存中读出数据的。我们研究过变量后就明白了。 变量:变量是编程中最常用的一种临时在内存中存取数据的一种方式。...给你使用 同时在内存跟踪表中记录 该地址被占用不在分给别人,同时在系统中建立映射机制 比如:变量名 STRING1=‘ABC’ name0x5 d、释放内存 从内存跟踪表中将记录删除...,下次存数据直接覆盖 图片 CHAR1(0x3)=A 从图片可以看出,当我们在脚本中定义变量存值的时候,可以从以下方面看到变化: a、内存占用:如果存的是一个字符则占用1个字节,如果存的是字符串则是字符串的长度加...如果在一个shell脚本程序中定义了一个变量,当该脚本程序运行时, 这个定义的变量只是该脚本程序内的一个局部变量,其他的shell不能引用它,要使某个变量的值可以在其他shell中 被改变,可以使用export...调用最后一条命令历史 $#:脚本后面接的参数的个数 $*:脚本后面所有参数,参数当成一个整体输出,每一个变量参数之间以空格隔开 $@: 脚本后面所有参数,参数是独立的,也是全部输出 $0:当前执行的进程

    58820

    Awesome-Shell资源

    Zsh 脚本,它增添了 Git 状态、文件颜色、以及腐朽的日期 k alias - 获得用于单行的酷 alias marker - 将你的 shell 命令加到书签 mackup - 云同步应用程序的配置文件...*nix 系统终端中的实时 web 日志分析器及交互式查看器 histstat - 适用于 netstat 的历史 htop - 基于 ncurses 的交互式进程查看器,其目标是比 top 更好...- Dropbox Uploader 是用来从 Dropbox 上传、下载、列出或删除文件的 Bash 脚本 httpie - HTTPie 是一个命令行 HTTP 客户端,用户友好的 cURL 替代品...ansiweather - 终端中的天气预报,包含 ANSI 颜色及 Unicode 符号 bashblog - 处理 blog 投递的 Bash 脚本 choosealicense-cli - 从终端选授權合約...的 Shell 风格指南 Linux 文档项目: Bash 编程 - 简介/如何做 Linux 文档项目: 高级 Bash 脚本指南 WikiBooks: Bash Shell 脚本 使用非官方的 Bash

    2K00
    领券