首页
学习
活动
专区
工具
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)的子进程

3K21

容器云——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 循环 轻松配置深度学习模型 ?

22820

【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.3K60

【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解释器会 配置文件 自动读取形成自己的 环境变量表信息

9810

【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解释器会 配置文件 自动读取形成自己的 环境变量表信息

8510

linux 后台运行方法总结

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

3.7K20

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,不然只能在下次重新登录时才生效。

11.9K50

入侵检测之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.5K10

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.7K71

如何编写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.

16520

shell变量详解

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

55620

使程序在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.2K20

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

1.9K00

Linux环境变量【终】

我们都知道,程序的默认父进程都是bash,那么程序就是bash的子进程,而子进程的 环境变量表其实就是从父进程bash那里继承的。   ...存储位置 环境变量通常存储在系统级别的配置文件 本地变量则只存在于当前 shell 进程的运行环境 继承性 环境变量可以被子进程继承并使用,对系统中所有的进程都是全局可见的 本地变量不能被子进程继承...上次我们也说了,为什么我们导入的环境变量重启会消失,是因为 我们操作是内存级的,并没有保存到磁盘,而每次重启内存数据丢弃,磁盘重新拷贝数据到内存。   那么究竟是哪个文件?...我来带大家看一看:   在Linux操作系统的家目录当中,隐藏文件有这样一个文件:.bash_profile文件,我们打开这个文件:   其实这就是一个脚本文件,用来导入环境变量,系统启动时,bash...#使bash_profile内的环境变量生效   当然我这台机器的Linux系统bash_profile文件并未生效,可能是登录时bash并未读取.bash_profile文件,所以不能生效,但是大部分人应该是没问题的

8010

ebpf监控_链路追踪命令

eBPF 提供了一种编写 eBPF 追踪脚本的高级语言,然后在 clang / LLVM 库的帮助下将这些脚本转化为 eBPF,最终添加到特定的代码点。...下一部分会向你展示如何列出所有可用的追踪点。...下面的例子统计所有的系统调用,然后通过 bpftrace 过滤语法使用 PID 过滤出某个特定进程调用的系统调用: $ sudo bpftrace -e 't:syscalls:sys_enter_*...这个例子使 bpftrace 给每个调用 read 系统调用的进程生成一个柱状图。要生成一个全局柱状图,直接保存 hist() 函数到 @(不使用任何键)。...下一个例子使用探测用户级函数结尾处的 uretprobe ,获取系统运行的每个 bash 发出的命令行: $ sudo bpftrace -e 'uretprobe:/bin/bash:readline

1.4K30
领券