V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
TwoSetViolin
V2EX  ›  Linux

如何在 Ubuntu 云服务器运行 sh 脚本的时候退出到可以输入命令的模式

  •  
  •   TwoSetViolin · 2021-05-26 17:20:38 +08:00 · 1878 次点击
    这是一个创建于 1057 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本人 Linux 小白 执行一个自动化部署脚本的时候,发现 mysql 下载服务只有几 Kb 每秒, 想要强制暂停该脚本,把 mysql 的安装包下载后再自己上传上去, 我已经找到强制暂停的命令, 但是不知道怎么从脚本正在运行的情况下跳到可以有光标输入的情况

    这是找到强制停止脚本的命令:

    • ps -ef/ps -aux: 这两个命令都是查看当前系统正在运行进程,两者的区别是展示格式不同。如果想要查看特定的进程可以使用这样的格式:ps aux|grep redis (查看包括 redis 字符串的进程),也可使用 pgrep redis -a 。

    注意:如果直接用 ps (( Process Status ))命令,会显示所有进程的状态,通常结合 grep 命令查看某进程的状态。

    • kill -9 进程的 pid: 杀死进程(-9 表示强制终止。)

    先用 ps 查找进程,然后用 kill 杀掉

    13 条回复    2021-05-30 14:56:47 +08:00
    cwjwgg
        1
    cwjwgg  
       2021-05-26 17:28:01 +08:00
    Ctrl+C 不行么
    AoEiuV020
        2
    AoEiuV020  
       2021-05-26 17:31:22 +08:00
    没有这么高端的操作,只能连程序带脚本整个干掉,再改脚本,
    dier
        3
    dier  
       2021-05-26 17:40:55 +08:00   ❤️ 1
    Ctrl+C 可以结束当前正在执行的操作,Ctrl+Z 可以把当前的操作临时暂时放到后台,然后通过 jobs 查看后台有哪些操作,使用 fg 编号 就能恢复之前暂停的操作
    killva4624
        4
    killva4624  
       2021-05-26 17:46:08 +08:00
    浅显一点说吧,有一些说法不太对,但基本是这么回事:
    你连接到服务器上执行命令时,一个连接代表一个会话,执行脚本的时候,默认会在你的会话前台运行,这个时候你就不能输入其他东西了。
    所以有两个方法:
    - 如楼上所说的,把脚本放到后台运行,过一段时间再移回前台查看。
    - 再新建一个会话连接到服务器上,相当于你新开了一个命令窗口。
    PhoenixZhang
        5
    PhoenixZhang  
       2021-05-26 18:14:01 +08:00
    装个 screen,开个 session
    想切到后台运行就 ctrl+a,再按 D 就切回去了
    回到 session 用 screen -r 会话名
    hulala1021
        6
    hulala1021  
       2021-05-26 18:41:05 +08:00
    用 screen
    或者 tmux
    kasusa
        7
    kasusa  
       2021-05-26 18:44:44 +08:00 via Android
    再开一个 ssh 链接。 一般我喜欢用 screen,这个在开 mc 服务器的时候很常用
    TwoSetViolin
        8
    TwoSetViolin  
    OP
       2021-05-26 18:59:26 +08:00
    抱歉,我下课去吃饭回来发现电脑在更新 windows,远程连接的软件也被关了,,重启电脑后连云服务器就重新回到最开始的页面,并没有看到之前一大串正在下载 mysql 的进度条,搜索进程发现 sh 脚本还在后台跑,不过现在已经可以强制停止了,谢谢,之后我再研究一下 screen 的用法
    trlove
        9
    trlove  
       2021-05-26 20:11:08 +08:00
    sh 文件 你可以执行的时候就后台运行 nohup ./xxx.sh & 可以指定 sh 脚本后台运行 默认的日志打印到当前目录下的 nohup 文件里面 你也可以直接指定一个特定的文件去输出。 命令执行完 回到正常光标状态 。另外 ps 管道查进程太慢了 直接 lsof:端口号 可以直接出来进程 pid 然后再去 kill
    CallMeReznov
        10
    CallMeReznov  
       2021-05-26 20:47:19 +08:00
    screen or jobs
    simonnie
        11
    simonnie  
       2021-05-26 21:53:31 +08:00
    tmux
    samin
        12
    samin  
       2021-05-26 22:00:01 +08:00
    @trlove 我想到的也是这种 , 服务端启动 jar 服务就是这种方式
    james122333
        13
    james122333  
       2021-05-30 14:56:47 +08:00 via Android
    这需求可以
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5791 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 06:05 · PVG 14:05 · LAX 23:05 · JFK 02:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.