Ubuntu 如何终止一个循环进程的方法 |
您所在的位置:网站首页 › 怎样在命令行里终止 › Ubuntu 如何终止一个循环进程的方法 |
问题背景
当我们在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 |