Ubuntu 如何终止一个循环进程的方法

您所在的位置:网站首页 怎样在命令行里终止 Ubuntu 如何终止一个循环进程的方法

Ubuntu 如何终止一个循环进程的方法

2024-07-14 12:08| 来源: 网络整理| 查看: 265

问题背景

 当我们在Linux环境下使用.sh脚本进行命令循环的时候,例如:

#!/bin/bash while [ 1 ] do echo '这里可以是任意的命令' done

我们的目的是当其中的命令挂了的时候可以自动启动,我们的目的很明确,但是当我们不需要这个命令的时候就需要将其关闭。

当我们的命令行没有关闭的时候很简单,ctrl+c停止执行就好了,但是当我们关了命令行,或者是通过系统双击打开脚本的情况下如何进行操作呢?

方法 ps fjx

 这个是使用"树"的形式来显示系统进程的命令,结果大致如下:

PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND 3303 3327 3327 3327 tty2 3327 Ssl+ 1000 0:00 /usr/lib/gdm3/gdm-x-session --run-script env GNOME_SHELL_SESSION_MODE=ubuntu gnome-session --se 3327 3336 3327 3327 tty2 3327 Sl+ 1000 0:00 \_ /usr/lib/gnome-session/gnome-session-binary --session=ubuntu 3336 3423 3423 3423 ? -1 Ss 1000 0:21 \_ /usr/bin/ssh-agent/usr/bin/im-launch env GNOME_SHELL_SESSION_MODE=ubuntu gnome-session 3336 3628 3327 3327 tty2 3327 Sl+ 1000 0:10 \_ /usr/lib/gnome-settings-daemon/gsd-power 5291 6098 6098 6098 pts/4 23775 Ss 1000 0:00 \_ /bin/zsh 6098 23775 23775 6098 pts/4 23775 Sl+ 1000 11:52 | \_/home/xx/anaconda3/bin/python 23775 23814 23775 6098 pts/4 23775 Z+ 1000 39:53 | \_ [java] 5291 10604 10604 10604 pts/1 10604 Ss+ 1000 0:02 \_ /bin/zsh 5291 5846 5846 5846 pts/3 8678 Ss 1000 0:00 \_ /bin/zsh 5846 8678 8678 5846 pts/3 8678 R+ 1000 0:00 \_ ps fjx

这个时候就简单了,找的你运行的bash(这里我用的是zsh,一般是bash)以及bash中的命令

5291 6098 6098 6098 pts/4 23775 Ss 1000 0:00 \_ /bin/zsh 6098 23775 23775 6098 pts/4 23775 Sl+ 1000 11:52 | \_/home/xx/anaconda3/bin/python 23775 23814 23775 6098 pts/4 23775 Z+ 1000 39:53 | \_ [java]

就像这个bash中运行的是python脚本,如果想停止这个进程,简单的

#kill PID(python进程) kill 6098

是没有用的,它会不断的循环执行

例如图中,只有kill bash进程才可以

# kill PID(bash的进程) kill 5291

到这里就好啦

不知道是不是我百度的方法不对,好像没找到这种方法

谷歌之后看到的方法参考:how-to-stop-a-bash-while-loop-running-in-the-background



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3