精华内容
下载资源
问答
  • 如何停止shell脚本
    千次阅读
    2019-11-08 16:42:15

    1、启动脚本(start.sh)

    echo '3'
    sleep 1
    echo '2'
    sleep 1
    echo '1'
    sleep 1
    nohup java -jar blog-0.0.1-SNAPSHOT.jar & tailf nohup.out
    

    nohup和&有什么区别?
    &:后台运行;关闭session时程序关闭。
    nohup:前台运行,使用Ctrl + C,程序关闭;关闭session时程序不影响。
    一般项目里结合着一起用。

    2、停止脚本(stop.sh)

    #查找该端口的进程信息,并将第二列的进程号赋给ID
    ID=`lsof -i:80 |grep java |awk '{print $2}'`
    echo $ID
    kill -9 $ID
    echo "kill success!"
    
    更多相关内容
  • shell脚本启动停止程序

    千次阅读 2021-09-10 16:28:05
    目录shell脚本启动停止重启单个程序shell脚本启动停止多个程序 编写shell脚本执行springboot项目 jar包 编写shell脚本执行python脚本以及其他程序 shell脚本启动停止重启单个程序 #!/bin/bash #这里可替换为你自己...

    • 编写shell脚本执行springboot项目 jar包
    • 编写shell脚本执行python脚本以及其他程序

    shell脚本启动停止重启单个程序

    #!/bin/bash
    #这里可替换为你自己的执行程序,其他代码无需更改
    APP_NAME=app.jar
    #使用说明,用来提示输入参数
    usage() {
        echo "Usage: sh 执行脚本.sh [start|stop|restart|status]"
        exit 1
    }
    #检查程序是否在运行
    is_exist(){
      pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `
      #如果不存在返回1,存在返回0
      if [ -z "${pid}" ]; then
       return 1
      else
        return 0
      fi
    }
     
    #启动方法
    start(){
      is_exist
      if [ $? -eq "0" ]; then
        echo "${APP_NAME} is already running. pid=${pid} ."
      else
        nohup java -Xms4096m -Xmx4096m -jar $APP_NAME --server.port=8000 > $APP_NAME.log 2>&1 &
      fi
    }
     
    #停止方法
    stop(){
      is_exist
      if [ $? -eq "0" ]; then
        kill -9 $pid
      else
        echo "${APP_NAME} is not running"
      fi
    }
     
    #输出运行状态
    status(){
      is_exist
      if [ $? -eq "0" ]; then
        echo "${APP_NAME} is running. Pid is ${pid}"
      else
        echo "${APP_NAME} is NOT running."
      fi
    }
     
    #重启
    restart(){
      stop
      start
    }
     
    #根据输入参数,选择执行对应方法,不输入则执行使用说明
    case "$1" in
      "start")
        start
        ;;
      "stop")
        stop
        ;;
      "status")
        status
        ;;
      "restart")
        restart
        ;;
      *)
        usage
        ;;
    esac
    
    

    shell脚本启动停止多个程序

    #!/bin/bash
    #使用说明,用来提示输入参数
    usage() {
        echo "Usage: sh 执行脚本.sh [start|stop|status]"
        exit 1
    }
    #检查程序是否在运行
    is_exist(){
      pid=`ps -ef|grep httpServer.py | grep -v grep | awk '{print $2}' `
      #如果不存在返回1,存在返回0
      if [ -z "${pid}" ]; then
       return 1
      else
        return 0
      fi
    }
    
    #停止方法
    stop(){
       ps -ef | grep  -E "rasa|httpServer.py" | grep -v grep | awk '{print $2}'  | xargs kill -9
    }
    
    #启动方法
    start(){
      is_exist
      if [ $? -eq "0" ]; then
        echo "rasa is running. Pid is ${pid}"
      else
        export RASA_X_PASSWORD=123456
        nohup rasa train && rasa x -p=5004 --rasa-x-port=5006 > nohup.out  2>&1 &
        cd ./actions && nohup rasa run actions -p 5056 > nohup.out  2>&1 &
        cd ./httpServer/ && nohup python httpServer.py > nohup.out  2>&1 &
        pwd && echo 启动完毕
      fi
    }
    
    #输出运行状态
    status(){
      is_exist
      if [ $? -eq "0" ]; then
        echo "rasa is running. Pid is ${pid}"
      else
        echo "rasa is NOT running."
      fi
    }
    
    #根据输入参数,选择执行对应方法,不输入则执行使用说明
    case "$1" in
      "start")
        start
        ;;
      "stop")
        stop
        ;;
      "status")
        status
        ;;
      *)
        usage
        ;;
    esac
    
    
    展开全文
  • Shell脚本运行中的停止方法

    万次阅读 2020-08-21 20:53:26
    Linux系统Shell中提交了一个脚本,但是需要停止这个进程,如何处理? 方式1 killall file-flume-kafka 说明:killall是一个命令,不是kill all,file-flume-kafka是脚本名,此方法简单粗暴。 方式二 ssh $i "ps -...

    Linux系统Shell中提交了一个脚本,但是需要停止这个进程,如何处理?

    方式1

    killall file-flume-kafka
    
    说明:killall是一个命令,不是kill all,file-flume-kafka是脚本名,此方法简单粗暴。
    

    方式二

    ssh $i "ps -ef | grep file-flume-kafka | grep -v grep | awk '{print \$2}' | xargs kill"
    
    ps参数:
    -e:显示所有进程
    -f:全格式显示
    ps -ef 第二个参数就是进程ID 
    
    grep file-flume-kafka | grep -v grep,file-flume-kafka为脚本名,并去除包含grep的行,避免影响最终结果正确性
    grep aaa | grep -v bbb:可以过滤掉查询aaa结果中包含了bbb的行。
    grep -v 可以理解为 grep not
    举例:cat test.log | grep "login"|grep -v "deviceType"表示找出test.log中包含login关键字,且没有deviceType这个字段的行
    
    awk{print $2}’:逐行的读入,以空格为默认分隔符将每行切片,取第二行。
    awk参数 -F : 指定输入文件折分隔符。
    比如awk -F : ‘/^root/{print $7}passwd 表示搜索passwd文件以root关键字开头的所有行,并输出该行的第7列。
    
    xargs kill:将前面的运行结果作为kill命令的参数运行。
    xargs表示取出前面命令运行的结果,作为后面命令的输入参数。
    xargs可选项:-n1,将每一个参数传给后面命令依次执行。
    
    特别注意:
    ssh $i 是登录到你执行脚本的那台虚拟机上,i代表虚拟机名字,非本机登录需要设置免密。当在本机上进行此操作时,无需执行这个命令。另外后面$2前的转义\也必须省略,无需转义。命令如下:
    ps -ef | grep file-flume-kafka | grep -v grep | awk '{print $2}' | xargs kill
    

    具体例子如下:

    假设这个是我正在运行的脚本,我想kill它,但是我不知道他的进程号,只知道脚本的名称。
    在这里插入图片描述

    我的脚本名称为dws-dwt.sh,根据过滤条件我查找出脚本有两个进程号,为什么会这样呢?

    因为你查找进程时用到了grep命令,而这个命令执行的时候带有你查找的进程参数,同时这也是一个进程。
    
    例如 这条命令 ps -ef | grep dws-dwt.sh 其实是分两步执行的 先执行ps -ef 再执行 grep dws-dwt.sh 这个命令本身执行的时候也是一个进程,并把也带有dws-dwt.sh。
    
    所以你要查找dws-dwt.sh进程,需要把 grep dws-dwt.sh这个进程过滤掉,才是最后的结果,怎么过滤呢,肯定不能用dws-dwt.sh做关键字,只能用grep做关键字
    

    执行结果有两个进程号:

    ps -ef | grep dws-dwt.sh
    

    在这里插入图片描述

    最终结果,得到进程号:

    在这里插入图片描述

    #执行命令停止进程
    ps -ef | grep dws-dwt.sh | grep -v grep | awk '{print $2}' | xargs kill
    
    
    
    
    展开全文
  • Linux下终止正在执行的shell脚本

    千次阅读 2022-02-07 22:36:47
    一、问题 Linux系统Shell中提交了一个脚本,但是需要...ps -ef | grep XXXX(shell脚本名).sh ps参数: -e:显示所有进程 -f:全格式显示 ps -ef 第二个参数就是进程ID 输出结果 grep是查找命令,比如 grep aaa.

    一、问题

    Linux系统Shell中提交了一个脚本,但是需要停止这个进程,如何处理?

    二、方案1

    killall fileName
    

    说明:killall是一个命令,不是kill all,file-flume-kafka是脚本名,此方法简单粗暴。

    三、方案2

    1、查看进程编号

    ps -ef | grep XXXX(shell脚本名).sh

    ps参数:
    -e:显示所有进程
    -f:全格式显示
    ps -ef 第二个参数就是进程ID 

    输出结果

    grep是查找命令,比如 grep aaa | grep -v bbb:在查询aaa结果中,过滤掉包含了bbb的行。
    grep -v 可以理解为 grep not
    举例:cat test.log | grep "login" | grep -v "deviceType"表示找出test.log中包含login关键字,且没有deviceType这个字段的行 

    可现在我们查找出脚本有两个进程号,为什么会这样呢?

    因为你查找进程时用到了grep命令,而这个命令执行的时候带有你查找的进程参数,同时这也是一个进程。

    例如 这条命令 ps -ef | grep test.sh 其实是分两步执行的 先执行ps -ef 再执行 grep test.sh 。这个命令本身执行的时候也是一个进程,并把也带有test.sh。

    所以你要查找test.sh进程,需要把 grep test.sh这个进程过滤掉,才是最后的结果,怎么过滤呢,肯定不能用test.sh做关键字,只能用grep做关键字

    2、过滤

    grep file-flume-kafka | grep -v grep 
    
    # file-flume-kafka为脚本名,并去除包含grep的行,避免影响最终结果正确性

    3、终止进程

    这里的grep --color=auto 是指进程grep进程本身, 进程108384才是正在执行的shell脚本

    
        kill 108384

    一步到位的命令

    ps -ef | grep XXX.sh | grep -v grep | awk '{print $2}' | xargs kill

    awk ‘{print $2}’:逐行的读入,以空格为默认分隔符将每行切片,取第二行。
    awk参数 -F : 指定输入文件折分隔符。
    比如awk -F : ‘/^root/{print $7}’ passwd 表示搜索passwd文件以root关键字开头的所有行,并输出该行的第7列。

    xargs kill:将前面的运行结果作为kill命令的参数运行。
    xargs表示取出前面命令运行的结果,作为后面命令的输入参数。
    xargs可选项:-n1,将每一个参数传给后面命令依次执行。


    参考:

    Shell脚本运行中的停止方法_super丶Coder的博客-CSDN博客_shell 停止脚本

    Linux下终止正在执行的shell脚本_liu_feng_zi_的专栏-CSDN博客_linux终止shell脚本

    展开全文
  • shell脚本编程100例

    2018-07-11 16:57:19
    shell脚本100例,非常经典,从简单的脚本,到最后企业实战可用的复杂脚本,非常适合初学者参考学习!
  • Shell脚本一键启动和停止jar,包含启动所有,启动指定的jar,停止所有,停止指定的jar,重启所有的jar
  • 有3种方式: fork: 如果脚本有执行权限的话,path/to/...fork 是最普通的, 就是直接在脚本里面用 path/to/foo.sh 来调用foo.sh 这个脚本,比如如果是 foo.sh 在当前目录下,就是 ./foo.sh。运行的时候 terminal...
  • Linux 终止正在执行的shell脚本

    千次阅读 2020-09-15 09:07:56
    1、搜索脚本执行的进程 ID ps -ef | grep <Name.sh> 2、根据进程ID杀掉进程 kill -9 <ID>
  • linux系统应用启动、重启、停止shell脚本 **Linux项目部署经常需要手动查找进程,然后kill,再启动,此过程较繁琐,可以编写脚本实现一键重启,启动,停止 启动命令:sh nginx_server.sh start 重启命令:sh ...
  • shell脚本详解一、Shell脚本概述1、shell脚本的概念2、shell脚本应用场景3.shell脚本能干什么4. shell的作用——命令翻译器,“翻译官”5.shell脚本构成二.编写shell脚本2.1 创建 shell 程序的步骤:2.2shell脚本...
  • shell 脚本入门

    万次阅读 多人点赞 2021-07-15 15:42:47
    一、什么是shell 脚本: 如果此时需要在终端中输入一系列命令完成一些操作,但是我们一条一条输入命令,这样就会很麻烦。那么有没有一种方式可以将很多条命令放到一个文件里面,然后直接运行这个文件即可?有!就是 ...
  • Java程序运行、停止Shell脚本

    千次阅读 2013-11-01 16:16:52
    用Java程序来控制shell脚本的运行和停止。具体来讲,这个Java程序至少要有三个功能: 运行Shell脚本;等待Shell脚本执行结束;停止运行中的Shell程序; 从功能需求来看,似乎是比较容易做到的。尽管没有写过...
  • shell脚本

    万次阅读 多人点赞 2021-02-02 19:26:00
    shell脚本就是将命令写入文本中,文本可以被执行。 二、脚本的调用形式 打开终端时系统自动调用:/etc/profile 或 ~/.bashrc /etc/profile 此文件为Linux系统为每个用户设置环境变量,当用户第一次登陆时,该文件会...
  • 1、停止服务脚本: #! /bin/shell # 杀死进程 appName='recommend-app' pid=$(ps -ef | grep ${appName} | grep java | grep -v grep | awk '{print $2}') echo -e $pid kill -9 ${pid} sleep 2 if [ $? -eq 0 ]...
  • shell脚本大全

    热门讨论 2012-11-04 16:36:09
    shell脚本大全
  • Windows 系统执行Shell 脚本的方法

    千次阅读 2021-03-26 14:42:33
    使用前了解 ...2 新建一个.sh结尾的文件,或者直接创建一个记事本,结尾不影响脚本执行的,(sh 结尾的文件方便让人知道这是一个shell脚本) 内容如下 #!/bin/bash echo "Hello World !" 下面是执行步骤 1 打
  • shell脚本语言(超全超详细)

    万次阅读 多人点赞 2020-04-20 22:26:20
    shell脚本语言1、shell的概述2、脚本的调用形式打开终端时系统自动调用:/etc/profile 或 ~/.bashrc3、shell语法初识3.1、定义以开头:#!/bin/bash3.2、单个"#"号代表注释当前行第一步:编写脚本文件第二步:加上可...
  • linux shell 脚本 入门到实战详解[⭐建议收藏!!⭐]

    万次阅读 多人点赞 2021-09-28 10:53:50
    ⭐]关于作者**作者介绍**一、shell 入门简介1.1 什么是shell1.2 shell 编程注意事项1.3 第一个shell 脚本 hello world二、shell 环境变量讲解2.1 shell 变量详解2.2 shell 系统变量 介绍2.3 shell 环境变量 介绍...
  • shell 脚本编写使用

    千次阅读 2021-07-30 12:58:24
    一、什么是shell 脚本: 二、shell 脚本写法: 三、shell 脚本语法: 1、第一个 shell 脚本: 2、交互式 shell 脚本: 3、shell 脚本的数值计算: 4、test 命令: 5、中括号判断符: 6、默认变量: 7、shell 脚本...
  • 实例(test.sh) #!/bin/sh declare -i win_count=0 declare -i lin_count=0 function help() { echo -e "\033[36;...1m --win(-W): Windows Number of Windows VMS(eg: -W 2 or --win 2)\033[0m" ...1m .
  • 109 个实用 shell 脚本

    万次阅读 多人点赞 2022-02-15 10:08:39
    Shell脚本,就是利用Shell的命令解释的功能,对一个纯文本的文件进行解析,然后执行这些功能,也可以说Shell脚本就是一系列命令的集合。 Shell可以直接使用在win/Unix/Linux上面,并且可以调用大量系统内部的功能来...
  • Shell全解析(一):Shell脚本

    万次阅读 多人点赞 2022-04-03 11:51:05
    文章目录一、前言二、Shell脚本2.1 从Shell到Shell脚本2.2 编写Shell脚本2.3 执行Shell脚本三、Shell脚本内对参数的操作四、Shell脚本中常见命令4.1 Shell echo命令4.1.1 echo中直接输出普通字符串4.1.2 echo中显示...
  • Linux中编写Shell脚本

    万次阅读 多人点赞 2018-10-08 11:22:35
    Shell脚本的执行 Shell脚本编写规范 Shell 中的变量 变量的算术运算 双小括号 (()) 数值运算命令的用法 let 运算命令的用法 expr 命令的用法 br 命令的用法 $[]符号的运算示例 Shell脚本的条件测试 几种...
  • shell脚本运行没反应

    千次阅读 2022-02-17 20:58:14
    当我们自己编写linux脚本shell文件时间,代码写的没有问题,但是怎么运行都没,那么我们只需要在shell代码的运行代码最前面更新一下主机的环境变量 source /etc
  • Shell 脚本中执行 SQL 语句

    千次阅读 2022-01-18 11:35:12
    Shell 脚本中执行 SQL 语句 以下执行 SQL 的方式, 既可以在 终端直接执行, 也可以把命令写到 shell 脚本中执行. 测试环境: Contos 7.9 MySQL 8.0 mysql — The MySQL Command-Line Client 短 SQL 命令执行 直接...
  • Shell脚本shell脚本中的中断与退出,continue,break,exit 1、continue结束单次循环 当i的值等于3时,continue结束了本次循环,没有打印3,而是继续下去,打印4,5,并继续执行后面的语句,打印over 2、break...
  • Shell脚本函数传递参数

    万次阅读 2022-04-14 23:00:42
    如何传递参数到Shell脚本函数 通常,在其他脚本语言中,您可以将参数和参数作为function_name(parameter1, parameter2,…)传递给函数,这在shell脚本函数中不支持。在shell脚本函数中,您可以在函数调用期间直接...
  • shell脚本计时方法

    千次阅读 2020-08-18 15:25:43
    #!/bin/bash now=`date +'%Y-%m-%d %H:%M:%S'` start_time=$(date --date="$now" ...#你的脚本 now=`date +'%Y-%m-%d %H:%M:%S'` end_time=$(date --date="$now" +%s); echo "used time:"$((end_time-start_time))"s
  • Shell - 传递参数到Shell 脚本

    千次阅读 2019-10-26 10:41:41
    文章目录Shell - 传递参数到Shell 脚本1、参数传递规则2、参数引用规则3、执行文件参数4、获得传递的参数个数5、其它特殊组合 Shell - 传递参数到Shell 脚本 1、参数传递规则 以空格分隔开 ./xxx.sh 1 2 3 2、参数...
  • shell脚本注释方法

    千次阅读 2021-12-20 10:43:30
    shell脚本注释 shell脚本的注释分两种:单行注释和多行注释 1.单行注释 单行注释众所周知,在语句行的首个位置添加 ‘#’ 键 [root@localhost ~]# cat hello.sh #!/bin/bash #####################################...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 653,529
精华内容 261,411
关键字:

如何停止shell脚本