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

如何在gnome-terminal命令创建的脚本中获取终端的PID,但保持终端处于活动状态以供以后使用

在gnome-terminal命令创建的脚本中,可以使用以下方法获取终端的PID并保持终端处于活动状态以供以后使用:

  1. 使用$$变量获取当前脚本的PID。在脚本中,$$代表当前进程的PID。可以将该PID保存到一个变量中,以便以后使用。
代码语言:txt
复制
#!/bin/bash

# 获取终端的PID
terminal_pid=$$

# 在此处执行其他命令或操作

# 以后可以使用$terminal_pid来引用终端的PID
  1. 使用gnome-terminal的--disable-factory选项创建终端,并使用--window-with-profile选项指定一个自定义的配置文件。然后,使用--title选项为终端设置一个唯一的标题。最后,使用--wait选项等待终端关闭,并将终端的PID保存到一个变量中。
代码语言:txt
复制
#!/bin/bash

# 创建带有唯一标题的终端,并获取终端的PID
terminal_pid=$(gnome-terminal --disable-factory --window-with-profile=custom_profile --title="My Terminal" --wait --command="echo \$\$\$")

# 在此处执行其他命令或操作

# 以后可以使用$terminal_pid来引用终端的PID

在上述示例中,--command="echo \$\$\$"将在终端中执行一个命令echo $$,该命令将输出终端的PID。$$在命令中需要转义为\$\$,以便在脚本中正确地传递$$

请注意,以上方法是基于gnome-terminal的解决方案。对于其他终端模拟器,可能需要使用不同的命令和选项来实现相同的功能。

希望这些信息对您有所帮助!如果您需要了解更多关于云计算或其他相关主题的信息,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

100个Linux命令(7)-进程管理

后台任务表running没有"+"表示处于等待队列,running且带有"+"表示正在执行,stopped状态表示处于睡眠状态。...使用-f将匹配命令行 -F, --pidfile file:匹配进程时,读取进程pid文件从中获取进程pid值。...后台进程 若在执行命令时,在命令结尾加上符号"&",它会进入后台。将命令放入后台,会立即返回父进程,并返回该后台进程jobid和pid,所以后台进程父进程不会进入睡眠。...通过"&"放入后台任务,在后台中仍会处于运行。当然,对于那种交互式vim类命令,将转入暂停运行状态。...: nohup tar rf a.tar.gz /tmp/*.txt & 另一种方法是使用screen这个工具,该工具可以模拟多个物理终端,虽然模拟后screen进程仍然挂在其所在终端同nohup

1.7K20

linux 后台运行进程:& , nohup

后台执行 比较下 & 与 nohup: & :后台运行,用户终端退出时(断连),命令结束 nohup test.sh & : 后台运行,用户终端退出时(断连)依然保持运行,可使用标准输入输出 & 当在前台运行某个作业时...如果当前目录nohup.out文件不可写,输出重定向到$HOME/nohup.out文件。如果没有文件能创建或打开以用于追加,那么 Command 参数指定命令不可调用。...而ps命令适用于查看瞬时进程动态,可以看到别的终端任务 jobs 查看当前有多少在后台运行命令 jobs -l选项可显示所有任务PID,jobs状态可以是running, stopped,...只有在当前命令行中使用 nohup和& 时,jobs命令才能将它显示出来。如果将他们写到 .sh 脚本,然后执行脚本,是显示不出来 比如执行下面这个脚本后,jobs 显示不出来: #!...pid 前台进程终止:ctrl+c 前后台进程切换与控制 ctrl + z 命令 将一个正在前台执行命令放到后台,并且处于暂停状态

4.5K40
  • 理解Linux 终端终端模拟器和伪终端

    gnome-terminal 执行 tty 命令,可以看到代表PTY slave设备文件: $ tty /dev/pts/0 执行 ps -l 命令,也可以确认 shell 关联终端是 pts...,它从缓冲区删除该字符,并向PTY master发送删除最后一个字符指令 我们可以使用命令行工具 stty 查询和配置 TTY,包括 line discipline 规则。...这时候我们在另一个 terminal 输入: # stty -F /dev/pts/0 rows 20 这个命令终端 pts/0 行数设置为原来一半,这将更新内核 TTY 数据结构,并向 vi...我们简单梳理一下远程终端是如何执行命令。 用户在客户端 terminal 输入 ssh 命令,经过 PTY master、TTY 驱动,到达 PTY slave。...Shell 负责解释执行用户输入字符。 可以使用 stty 命令对 TTY 设备进行配置。 远程终端 ssh 也是一种伪终端 PTY。

    39210

    Web Terminal 预备知识

    常用终端有 xterm,gnome-terminal,以及远程终端 ssh。我们以 Ubuntu 桌面版提供 gnome-terminal 为例,介绍伪终端如何与 TTY 驱动交互。...在 gnome-terminal 执行 tty 命令,可以看到代表PTY slave设备文件: [root@kubevirtci web-console]# tty/dev/pts/0 执行 ps...-l 命令,也可以确认 shell 关联终端是 pts/0: [root@kubevirtci web-console]# ps -lF S UID PID PPID C PRI...我们简单梳理一下远程终端是如何执行命令。 用户在客户端 terminal 输入 ssh 命令,经过 PTY master、TTY 驱动,到达 PTY slave。...bash 标准输入、标准输出和标准错误都设置为了PTY slave。 当用户在客户端 terminal 输入命令 ls -l 和回车键,这些字符经过 PTY master 到达 TTY 驱动。

    1.4K20

    600个常用Linux命令大全,从A到Z

    缓存 aspell 在 Linux 中用作拼写检查器 atd 一个作业调度程序守护进程,运行调度以供以后执行作业 atrm 用于删除指定作业,要删除一个作业,它作业号在命令传递 atq 显示用户安排待处理作业列表...autoconf 在 Linux 中用于生成配置脚本 autoheader 用于创建 C “#define” 或任何其他模板头模板文件以供 configure 使用 automake 用于自动生成符合...一旦程序终止,终端处于异常状态,这很有用 restore 用于从使用转储创建备份恢复文件 return 用于退出 shell 函数。...screen 提供从单个 ssh 会话启动和使用多个 shell 会话能力 script 用于制作打字稿或记录所有终端活动 scriptreplay 用于重放脚本命令记录日志文件存储typescript...uniq 用于报告或过滤掉文件重复行 unix2dos 将 Unix 文本文件转换为 DOS 格式 until 用于执行一组命令,只要“直到”命令最后一个命令退出状态不为零 uptime 用于找出系统活动

    39311

    Python 自动化指南(繁琐工作自动化)第二版:附录 B:运行程序

    此外,虽然从对话框运行 Python 脚本会打开一个新终端窗口来显示其输出,该窗口会在程序结束时自动关闭,您可能会错过一些输出。...您可以通过创建批处理脚本来解决这些问题,它是一个带有bat文件扩展名小文本文件,可以运行多个终端命令,很像 MacOS 和 Linux Shell 脚本。...您可以使用文本编辑器(记事本)来创建这些文件。...首先,使用文本编辑器gedit创建一个包含以下内容新文件: [Desktop Entry] Name=example.py Exec=gnome-terminal -- /home/al/example.sh...这将打开一个新终端窗口(具体来说,是运行/home/al/example.sh Shell 脚本gnome-terminal程序),我们接下来将创建这个脚本

    1.8K40

    Linux—进程管理

    1.7 进程分类 前台进程:与终端相关进程,通过终端启动进程 注意:也可把在前台启动进程送往后台,以守护模式运行 守护进程:daemon,与终端无关进程(内核),在系统引导过程启动进程...仅在特定条件下使用,其中进程中断可能会导致意外设备状态 K TASK_KILLABLE:进程处于睡眠状态,与不可中断D状态相同,但有所修改,允许等待任务通过响应信号而被中断(彻底退出)。...具体状态和“ps aux”命令 STAT 状态一致 UID 进程是哪个 UID 用户调用运行 PID 进程 ID 号 PPID 父进程 ID 号 C 该进程 CPU 使用率,单位是百分比 PRI...信号向执行程序报告事件。生成信号事件可以是错误或外部事件(I/O请求或计时器过期),或者来自于明确请求(使用信号发送命令) 下表列出了系统管理员用于日常进程管理基本信号。...由于具有空闲CPU系统可能会因为磁盘或网络资源忙而遇到很长时间等待,因此Linux负载平均值包含了对I/O考量。遇到负载平均值很高CPU活动很低时,请检查磁盘和网络活动

    4.9K41

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

    /test.sh 中断脚本test.sh:ctrl+c 在1基础上将运行test.sh,切换到后台并暂停:ctrl+z 执行ctrl+z后,test.sh在后台是暂停状态(stopped),...使用命令:bg number让其在后台开始运行(“number”是使用jobs命令查到 [ ]数字,不是pid) 直接在后台运行脚本test.sh:..../test.sh & 查看当前shell环境已启动任务情况:jobs 将test.sh切换到前台运行:fg %number(”number”为使用jobs命令查看到 [ ] 数字,不是pid.../test.sh &(test.sh打印信息会输出到当前目录下nohup.out使用jobs可看到test.sh处于running状态 使用ps -ef |grep test.sh可查看到正在运行...test.sh脚本进程 退出当前shell终端,再重新打开,使用jobs看不到正在运行test.sh,使用ps -ef可以看到 在后台不中断运行test.sh,可以使用nohup忽略hangup

    3.5K10

    暗藏 11 年 Linux 漏洞曝光,可用于伪造 SUDO 命令

    研究人员表示,WallEscape 可能会影响 "wall "命令,该命令在 Linux 系统通常用于向登录到同一系统(服务器)所有用户终端发送消息弹窗。...由于在处理通过命令行参数输入时,转义序列会被过滤,因此无权限用户可利用该漏洞,使用转义控制字符在其他用户终端机上创建 SUDO 提示,并诱使他们输入管理员密码。...安全研究员 Ferrante 解释称,如果 "mesg "实用程序处于活动状态,且 wall 命令具有 setgid 权限,那在这样情况下,该漏洞就有可能被成功利用。...需要一些预防措施,比如使用 wall 命令向目标传递一个脚本,改变他们在终端输入(前景色、隐藏输入、睡眠时间),这样虚假密码提示就会作为合法请求通过。...要找到密码,攻击者就必须检查 /proc/$pid/cmdline 文件命令参数,在多个 Linux 发行版上,非特权用户都能看到这些参数。 另一种攻击方式是通过转义序列更改目标用户剪贴板。

    39210

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

    fork创建子进程和父进程在同一个进程组,进程组Leader必然是该组第一个进程,所以子进程不可能是该组第一个进程,在子进程调用setsid就不会有问题了。...守护进程没有控制终端通常源于它们由系统初始化脚本启动,然而守护进程也可能从某个终端由用户在shell提示符下键入命令行启动,这样守护进程必须亲自脱离于控制终端关联,从而避免与作业控制、终端会话管理...(使用printf语句,后台进程可以将内容输出到屏幕上)。...这些脚本通常位于/etc目录或以/etc/rc开头某个目录。由这些脚本启动守护进程一开始时拥有超级用户权限。...这是因为守护进程工作目录可以位于文件系统任何位置。守护进程在正常运行时,会保持某个随机目录处于打开状态,从而阻止管理员卸载包含了该目录文件系统。这么做是为了统一路径,让文件系统可拆卸。

    2.9K20

    linux杀死进程五种方法「建议收藏」

    方法三: killall 通过程序名字,来杀死进程 例如: killall firefox 注意: 该命令可以使用 -9 参数来强制杀死进程, killall -9 firefox 方法四: pkill...通过程序名字, 直接杀死所有进程 例如: pkill firefox 方法五: 通过xkill 可以杀死图形程序应用, 例如firefox崩溃无响应,可以使用命令....信号可以以名字 ( -HUP ) 或者数字 ( -1 ) 方式指定. 信号 0 (检查进程是否存在)只能以数字方式指定。...Uninterruptible sleep (usually IO) +—R 正在运行,或在队列进程 +—S 处于休眠状态 +—T 停止或被追踪 +—Z 僵尸进程 +—W 进入内存交换...  例如在Ubuntu强制结束一个已成僵尸名称为:firefox,PID为:1603进程,可以如下操作:   方法一:   (1)ctrl+alt+t,调出终端,输入 top,然后就可以看到现在系统进程

    41.4K50

    让linux程序在后台运行

    形式终端模拟器,而gnome-terminal,konsole就是gui形式终端模拟器 console是主机控制台,是一个物理概念。...tty是所有终端设备总称 pty是其中一类,伪终端,或者叫虚拟终端 “&” 命令行结尾法: 在Unix/Linux下如果想让程序独立终端运行,一般都是使用 & 在命令结尾来让程序自动运行。...有几点需要注意: 已经启动程序依然attach于当前pts,只有当前终端模拟器关闭(使用exit命令退出),进程自动被tty继承。...所以你需要和第一个方法混用,即 nohup command {option} & 混用后,它会自动把你执行命令输出结果记录到权限为-rw——-,名为nohup.out文件。...如果后台中有多个命令,可以用 fg %jobnumber将选中命令调出,%jobnumber是通过jobs命令查到后台正在执行命令序号(不是pid) bg:将一个在后台暂停命令,变成继续执行。

    5.1K10

    nohup和setsid实现linux后台运行执行 shell 脚本

    /test.sh 中断脚本test.sh:ctrl+c 在1基础上将运行test.sh,切换到后台并暂停:ctrl+z 执行ctrl+z后,test.sh在后台是暂停状态(stopped),使用命令...:bg number让其在后台开始运行(“number”是使用jobs命令查到 [ ]数字,不是pid) 直接在后台运行脚本test.sh:..../test.sh & 查看当前shell环境已启动任务情况:jobs 将test.sh切换到前台运行:fg %number(”number”为使用jobs命令查看到 [ ] 数字,不是pid).../test.sh &(test.sh打印信息会输出到当前目录下nohup.out使用jobs可看到test.sh处于running状态 使用ps -ef |grep test.sh可查看到正在运行...test.sh脚本进程 退出当前shell终端,再重新打开,使用jobs看不到正在运行test.sh,使用ps -ef可以看到 在后台不中断运行test.sh,可以使用nohup忽略hangup信号

    2.8K30

    springboot实战之创建一个支持平滑关闭非web项目

    前言 之前在springboot项目启动不报错,一启动就断开连接问题排查实录一文,留了一个小尾巴。即如何在springboot项目中不引入web包,也能实现项目启动后,后台能不停止,能一直运行?...答案很简单:不让程序停止,那就让主程序一直卡着,官方术语就是,让主程序处于堵塞状态。那如何让主程序处于堵塞状态呢?...addShutdownHook遇到如下场景会被调用 程序正常退出 使用System.exit() 终端使用Ctrl+C触发中断 系统关闭 OutOfMemory宕机 使用kill pid 示例代码...b、项目关闭,先执行kill -12 pid ? 再执行kill -15 pid ? 总结 创建一直运行后台程序,主要就是保持主程序堵塞。...在开发,可以写一个脚本,先通过kill -12,修改线程池等状态,不再接受新资源,待原有资源处理完毕后。

    2.4K20

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

    场景1:我用xshell通过 telnet/ssh 远程登录服务器,跑脚本或执行一些耗时较长任务,有时会因为网络不稳定或手贱等原因断开我控制终端:xshell、sourceCRT)远程连接状态...nohup 在使用上十分方便,只需在要处理命令前加上 nohup 即可,标准输出和标准错误缺省会被重定向到 nohup.out 文件。一般我们可在结尾加上 & 表示将命令放入后台运行。...比如我们测试在后台执行 ping www.baidu.com 命令,如下即可: nohup ping www.baidu.com & 同时,会在输入命令目录下生成一个nohup.log日志文件(已有该文件则继续使用...相当于我们可以用xshell打开多个连接(session),不用时可以将这些连接置为离线状态 - Detached,离线状态下session程序会正常运行,也就是后台运行,并随时可以恢复继续使用,恢复使用时为...1、如何使用screen   上图是screensession列表,图中Attached代表有其他终端正在使用这个session,Detached说明session处于离线状态, 下面一起来看一下我们使用

    3.1K21

    环境变量:熟悉陌生人

    这些变量值可以来自各种来源,文本文件、第三方密钥管理器、调用脚本等。 这里重要是 ❝这些环境变量值不会「硬编码」在程序。它们是真正动态,可以根据程序运行环境进行更改。 ❞ 1....运行时/进程环境变量 运行时环境变量只针对它们关联运行时或进程。这些变量通常由创建新进程父进程设置,并伴随系统和用户环境变量。 我们可以使用终端脚本来动态创建和存储这些变量。...应用程序查询此文件变量,并「在运行时加载」以供使用。...使用密码管理器 当前仍处于开发初期阶段第三种选择是使用专用密码管理器。密码管理器是第三方服务,使我们可以完全隔离应用程序密钥与源代码/部署,并在需要时通过安全网络连接获取它们。...这些软件包旨在获取我们应用程序环境变量,并通过互联网将它们发送给其创建者。 唯一解决方法是在从互联网安装新软件包时保持警惕。

    14310

    进程组、会话、控制终端概念,如何创建守护进程?

    后台进程组 该进程组进程只能够向终端设备写。 终端进程组ID 每个进程还有一个属性,终端进程组ID(TPGID),用来标识一个进程是否处于一个和终端相关进程组。...一个会话只存在一个前台进程组,但可以存在多个后台进程组。第一次登陆后第一个创建进程是shell,也就是会话领头进程,该领头进程缺省处于一个前台进程组并打开一个控制终端可以进行数据读写。...当在shell里运行一行命令后(不带&)创建一个新进程组,命令如果有多个命令创建多个进程,这些进程都处于该新建进程组,shell将该新建进程组设置为前台进程组并将自己暂时设置为后台进程组。...由于在进程运行过程,当前目录所在文件系统(“/mnt/usb”等)是不能卸载,这对以后使用会造成诸多麻烦(系统由于某种原因要进入单用户模式)。...法是使用syslog服务,将程序出错信息输入到系统日志文件

    1.4K20

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

    步骤: $sleep 30 按下Ctrl + Z $ls -l --forest S列(进程状态,停止进程状态为T。 $exit 这样会退出。...16.1.5 修改或移除捕获 在脚本不同位置进行不同捕获处理,需要重新使用带有新选项trap命令。 修改了信号捕获后,脚本处理信号方式就会发生变化。 也可以删除以及设置好捕获。...在终端会话中使用后台进程要注意,ps命令输出,每一个后台进程都和终端会话(pts/0)终端联系在一起。如果终端会话退出,那么后台进程也会退出。...方法:at命令和cron表 16.6.1 用at命令来计划执行作业 at命令会将作业提交到队列,指定shell何时运行该作业。at守护进程atd会以后台模式运行,检查作业队列来运行作业。...3.浏览cron目录 有4个预配置cron脚本目录可以供我们使用。hourly,dialy,monthly,weekly。 查看: $ls /etc/eron.

    3K61

    Kali Linux 网络扫描秘籍 第八章 自动化 Kali 工具

    提供示例在/ 24网络上执行扫描,并使用文件名netscan.txt生成 greppable 输出文件。 然后,该脚本用于分析此文件,并确定各个端口上活动服务是否能发现任何主机。...脚本输出显示正在评估端口号,然后列出输出文件任何系统IP地址,这些系统在该端口上运行活动服务。...这些终端每一个将运行输入列表 IP 地址之一利用序列。 原始执行终端在它们被执行时输出进程列表,并且表明在每个终端创建后门。...该技术可以用于以后通过使用集成终端服务或 SMB 认证来访问沦陷系统。 准备 要使用此秘籍中演示脚本,你需要访问多个系统,每个系统都具有可使用 Metasploit 利用相同漏洞。...这里,在成功利用时会依次执行两个命令。 这两个命令第一个命令创建一个名为hutch新用户帐户,并定义关联密码。

    5.2K20
    领券