本人 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 杀掉
Ctrl+C 不行么
没有这么高端的操作,只能连程序带脚本整个干掉,再改脚本,
Ctrl+C 可以结束当前正在执行的操作,Ctrl+Z 可以把当前的操作临时暂时放到后台,然后通过 jobs 查看后台有哪些操作,使用 fg 编号 就能恢复之前暂停的操作
浅显一点说吧,有一些说法不太对,但基本是这么回事:
你连接到服务器上执行命令时,一个连接代表一个会话,执行脚本的时候,默认会在你的会话前台运行,这个时候你就不能输入其他东西了。
所以有两个方法:
- 如楼上所说的,把脚本放到后台运行,过一段时间再移回前台查看。
- 再新建一个会话连接到服务器上,相当于你新开了一个命令窗口。
装个 screen,开个 session
想切到后台运行就 ctrl+a,再按 D 就切回去了
回到 session 用 screen -r 会话名
用 screen
或者 tmux
再开一个 ssh 链接。 一般我喜欢用 screen,这个在开 mc 服务器的时候很常用
抱歉,我下课去吃饭回来发现电脑在更新 windows,远程连接的软件也被关了,,重启电脑后连云服务器就重新回到最开始的页面,并没有看到之前一大串正在下载 mysql 的进度条,搜索进程发现 sh 脚本还在后台跑,不过现在已经可以强制停止了,谢谢,之后我再研究一下 screen 的用法
sh 文件 你可以执行的时候就后台运行 nohup ./xxx.sh & 可以指定 sh 脚本后台运行 默认的日志打印到当前目录下的 nohup 文件里面 你也可以直接指定一个特定的文件去输出。 命令执行完 回到正常光标状态 。另外 ps 管道查进程太慢了 直接 lsof:端口号 可以直接出来进程 pid 然后再去 kill
screen or jobs
tmux
我想到的也是这种 , 服务端启动 jar 服务就是这种方式
这需求可以