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

使用bash在ssh上启动进程,然后在sigint上将其杀死

使用bash在SSH上启动进程,然后在SIGINT上将其杀死的方法如下:

  1. 首先,通过SSH连接到远程服务器。
代码语言:txt
复制
ssh user@remote_host
  1. 在远程服务器上,启动一个进程,例如运行一个Python脚本。
代码语言:txt
复制
python my_script.py &

这里,&符号表示将进程放入后台运行。

  1. 获取刚刚启动的进程的进程ID(PID)。
代码语言:txt
复制
ps aux | grep my_script.py

在输出中找到进程的PID,通常是第二列。

  1. 使用trap命令捕获SIGINT信号(通常是通过Ctrl+C触发),并在捕获到信号时杀死进程。
代码语言:bash
复制
#!/bin/bash

# 启动进程并获取PID
python my_script.py &
pid=$!

# 捕获SIGINT信号并杀死进程
trap "kill -9 $pid; exit" INT

# 等待进程结束
wait $pid

将上述脚本保存为run_and_kill.sh,然后在远程服务器上运行它。

代码语言:txt
复制
bash run_and_kill.sh

现在,当你按下Ctrl+C时,脚本将捕获SIGINT信号并杀死后台运行的进程。

这种方法可以用于任何类型的进程,只需将python my_script.py替换为要运行的命令。

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

相关·内容

Fedora 使用 SSH 端口转发

对于 HTTP 非安全连接,Web 服务器通常要求主机系统使用端口 80,对于 HTTPS 安全连接通常要求使用 443。...ssh 会话准备就绪后,将其保持打开状态,然后可以浏览器中键入 http://localhost:8000 来查看你的 Web 应用。现在,系统之间的流量可以通过 ssh 隧道安全地传输!...因此,即使你无法 ssh 到实际的 db.example.com 主机,你也可以使用此命令将其转发: $ ssh-L 3306:db.example.com:3306 remote.example.com...现在,你可以 localhost 运行 MariaDB 命令,而实际使用 db.example.com 主机。...有关更多信息,请在手册页中搜索 PermitOpen 来配置 sshd 守护进程: $ man sshd_config 最后,请记住,只有 ssh 会话处于打开状态时才会端口转发。

79110

Windows使用PuTTY进行SSH连接

SSH的默认端口是22。如果远程服务器的SSH守护程序另一个端口上运行,则需要在“ 会话”类别中指定它。 单击“ 打开”以启动SSH会话。...使用PuTTY进行端口转发(SSH隧道) SSH隧道允许您通过安全通道访问远程服务器运行的网络服务。如果您要访问的服务不通过SSL运行,或者您不希望允许公众访问它,则此功能非常有用。...例如,您可以使用隧道来安全地访问远程服务器运行的MySQL服务器。 为此: PuTTY的配置窗口中,转到“ 连接”类别。 转到SSH然后转到隧道。 源端口字段中输入3306。...您与远程MySQL服务器的连接将通过SSH加密,允许您访问数据库而无需公共IP运行MySQL。 通过SSH运行远程图形应用程序 PuTTY可以安全地运行托管远程Linux服务器的图形应用程序。...PuTTY的配置窗口中,确保会话类别中输入远程服务器的主机名或IP以及正确的端口。 Connection类别中,转到SSH然后转到X11。 选中启用X11转发复选框。

20K20

GitLab CI CD使用SSH密钥

亚搏体育app文件 亚搏体育app CI / CD GitLab CI / CD使用SSH密钥 GitLab CI / CD使用SSH密钥 上次更新时间:2017-12-13•...SSH密钥以下情况下很有用: 您想签出内部子模块 您想使用包管理器(例如Bundler)下载私有包 您想要将应用程序部署到自己的服务器,例如Heroku 您要执行从构建环境到远程服务器的SSH...将公共密钥复制到您想要访问的服务器(通常在中 ~/.ssh/authorized_keys),或者 访问私有GitLab存储库时将其添加为部署密钥。...完成后,尝试登录到远程服务器以接受指纹: ssh example.com 要访问GitLab.com的存储库,可以使用git@gitlab.com。.../config' 示例项目 为了方便起见,我们建立了一个示例SSH项目,使用我们的公共 共享运行程序GitLab.com运行。

2.4K10

使用systemdBoot启动Linux服务

它包括许多功能,包括用于启动和管理系统进程的引导系统。它目前是大多数Linux发行版的默认初始化系统。许多常用的软件工具(如SSH和Apache)都附带了systemd服务。...虽然服务器引导时有多种方法可以运行脚本或启动进程,但自定义systemd服务可以轻松启动,停止或重新启动脚本,并将其配置为引导时自动启动。...systemd提供了使用标准化接口的优势,该接口支持它的所有Linux发行版中都是一致的。 创建自定义systemd服务 创建服务将管理的脚本或可执行文件。..."; 7 sleep 30; 8 done 此脚本将记录初始化的时间,然后无限循环以保持服务运行。...可以使用标准systemd命令停止或重新启动该服务: sudo systemctl stop myservice sudo systemctl restart myservice 最后,使用enable

1.9K50

Linux 使用 jps 命令检查 Java 进程

image.png 系统运行着诸多进程,通过 jps 命令能够快速有效识别 Java 进程 Linux 中,有一些用于查看系统运行进程的命令。进程是指由内核管理的正在进行的事件。...每启动一个应用程序时,就会产生一个进程,但也有许多在计算机后台运行的进程,如保持系统时间准确的进程、监听新文件系统的进程、索引化文件的进程等。... Linux 中,可以通过 ps 命令查看进程。这是查看当前系统运行进程最简单的方法。... 命令,并配合结果输出管道符进行 grep,从而查看系统运行的 Java 进程,。...要想实现与 ps 命令类似的输出,可以使用 -v 选项。这很实用,这与 ps 相比,可以减少你的输入。

2.7K20

使用TermuxAndroid运行SSH服务器

借助出色的Termux终端仿真器应用程序,您可以Android运行SSH服务器。 以前,我使用SSHDroid来实现此目的,但是使用Termux更好,因为您可以使用包管理器工作。...sshd 您的ssh服务正在端口8022运行,以下是测试命令 ssh localhost -p 8022 添加您的公钥 您无法Termux中进行密码身份验证,因此需要将OpenSSH公钥放入~/...然后可以使用以下命令将其添加到~/.ssh/authorized_key中,注意这个命令在这里只是简单说明,并不是你就可以简单重定向到你Android手机,但是实际如果你要将你的id_rsa.pub放到...比如使用stf连接到Android手机 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 然后,您可以通过连接到ssh服务对其进行测试 ssh $IP -...OpenSSH 如果您使用的是OpenSSH(Linux或Cygwin),则可以直接使用它: ssh $IP -p 8022 希望将来Termux允许将sshd注册为适当的服务,它将在系统启动时自动启动

4.1K20

当你 Linux 启动一个进程时会发生什么?

我们要做的是启动一个进程。我们已经博客讨论了很多关于系统调用的问题,每当你启动一个进程或者打开一个文件,这都是一个系统调用。...fork 和 exec Linux 的 posix_spawn 是通过两个系统调用实现的,分别是 fork 和 exec(实际是 execve),这些都是人们常常使用的。...尽管 OS X ,人们使用 posix_spawn,而 fork 和 exec 是不提倡的,但我们将讨论的是 Linux。 Linux 中的每个进程都存在于“进程树”中。...事实证明,有了 C 或 Python 的技能,你可以几个小时内编写一个非常简单的 shell,像 bash 一样。(至少如果你旁边能有个人多少懂一点,如果没有的话用时会久一点。)...为何 fork 并非那么耗费资源(写入时复制) 你可能会问:“如果我有一个使用了 2GB 内存的进程,这是否意味着每次我启动一个子进程,所有 2 GB 的内存都要被复制一次?

1.1K70

Linux 使用 kill 和 killall 命令来管理进程

而另外一些程序可以派生出其他进程,比如说它会侦听某些事件的发生,然后对其做出响应。并且每个进程都需要一定的内存和处理能力。你运行的进程越多,所需的内存和 CPU 使用周期就越多。...老式电脑(例如我使用了 7 年的笔记本电脑)或轻量级计算机(例如树莓派),如果你关注过后台运行的进程,就能充分利用你的系统。 你可以使用 ps 命令来查看正在运行的进程。...这就是为什么我喜欢先使用 ps -ef 命令来检查我正在运行的进程然后针对要停止的命令的准确路径运行 killall。...我作为 Unix 和 Linux 系统管理员的早期职业生涯中,杀死非法作业的能力是保持系统正常运行的关键。...如今,你可能不需要亲手 Linux 的终止流氓进程,但是知道 kill 和 killall 能够最终出现问题时为你提供帮助。 你也能寻找其他方式来管理进程

61820

研究如何使用IPCDumpLinux跟踪进程间通信

IPCDump IPCDump这款工具可以帮助广大研究人员Linux操作系统跟踪进程间通信(IPC)。...该工具有助于研究和调试多进程引用程序,而且还可以帮助了解操作系统通信过程中不同组件之间的关联。...IPCDump收集的大部分信息来自放置在内核中关键函数的kprobes和跟踪点的BPF钩子。为此,IPCDump使用了gobpf,它可以为bcc框架提供Golang绑定功能。...功能介绍 支持管道和FIFO; 回环IPC; 信号(常规和实时); Unix流和数据图表; 基于伪终端的IPC; 基于进程PID或进程名的事件过滤器; 可读性高或JSON格式的输出数据; 工具要求&使用...4.15.0 已测试 未测试 5.4.0 未测试 已测试 5.8.0 未测试 已测试 工具构建 依赖组件 首先,我们需要安装Golang: snap install go --classic 接下来,操作系统安装好

1.3K30

Mac使用ssh-key免密码登录服务器

从很早之前开始,搭建测试服务器的时候,就不停的谷歌怎么免密登录服务器,每次配置好免密登录后,到搭建新的服务器时,又忘记了具体的命令,所以决定把这个方法记下来,方便之后日后查找。...通常的来说,我们会使用 ssh user@host -p port这个命令,之后输入密码来登录服务器,才能ssh登录到服务器进行操作。...首先我们要在我们的mac电脑生成公钥和私钥,终端中输入以下命令: cd ~/.ssh 首先进入~/.ssh目录,之后: ssh-keygen -t rsa 之后就可以一路回车,一般都不设置密码,即可在....ssh/authorized_keys 现在,我们就可以正常的mac 终端中使用ssh来登录服务器了,无需输入密码。...我们可以bash_profile中设置一个alias,更能方便登录服务器的操作。

4.7K40

Linux服务器安装Web SSH--SSHwifty的部署和使用

但是如果是官方Deepin镜像、Arch等客户端Linux,默认一般没有安装: # Debian sudo apt install openssh-server # 启动SSH进程 systemctl...start ssh.service # 开机启动SSH systemctl enable ssh.service 宝塔面板 安装宝塔面板,主要是方便配置域名解析和Nginx反向代理。...它可以部署您的计算机或服务器,以为任何兼容(标准)的Web浏览器提供SSH和Telnet访问接口。 [SSH Web] 通俗地说:安装SSHwifty可以实现Web端SSH控制服务器。...的配置文件内,添加以下两段,然后保存退出。...不过,Web SSH和Xshell这样的软件,传输层,Web SSH是没有Xshell、Terminal和Powershell直接使用SSH传输来得安全,如果对安全有极高要求,建议还是不要使用WebSSH

9.3K121

Windows 使用 ConEmu 命令行终端打开多窗口启动 Redis 服务

由于开发机器是 Windows 系统,每天启动计算机都需要重新开启 Redis 服务很麻烦。 于是计划写个简单的 batch 脚本,能在桌面点击脚本完成启动和连接 Redis 服务的功能。...batch 实现 基础知识 batch 脚本中输入使用的命令默认的都会打开系统自带的命令行工具(Win + R)如: 有一个 cd_redis.bat 脚本: :: 进入 Redis 安装目录 ::...version 1.0 :: @author huliuqing echo 'Enter in redis install directory...' cd E:\redis2.4.5 pause 使用...ConEmu 打开多个窗口并启动 Redis 服务 需要解决的问题是: 进入并启动 ConEmu 命令行程序 ConEmu 中运行命令 能够一个 batch 脚本中开启多个窗口 最终的 batch

3.2K20

日拱一卒,量大管饱,MIT手把手教你配环境

我们的例子当中,当我们输入Ctrl-C时,shell会发送一个SIGINT信号给进程。 这里有一个使用Python来捕获SIGINT信号并且忽视它的例子,因为捕获了信号,所以不会导致程序停止。...我们需要使用kill命令发送这个信号,语法是kill -TERM 。 暂停和后台执行进程 信号除了杀死进程之外还能做一些其他的事情。比如SIGSTOP可以让一个进程暂停。...shell和框架 shell 工具和脚本那节课中我们已经介绍了 bash shell,因为它是目前最通用的 shell,大多数的系统都将其作为默认 shell。但是,它并不是唯一的选项。...在这个练习当当中,我们将会首先启动一个sleep 60 &的进程作为先导进程。一种方法是使用wait命令,试着先启动sleep命令,然后等到结束再执行一个ls命令。...然后使用sudo service sshd restart重启 ssh 服务器,然后重新尝试。 (附加题) 虚拟机中安装 mosh 并启动连接。然后断开服务器/虚拟机的网络适配器。

1.3K20
领券