shell脚本处理多线程程序,杀死多线程程序。

一、shell处理多线程

在特殊情况下需要同时启动多个程序,而且要求执行的命令不能停止完再执行下一条。即顺序执行是不满足要求的,因此,此时需要用到多线程处理。具体实现方法如下图所示:
在这里插入图片描述
方式:shell 的for循环do与done之间的代码使用{ }&放在后台执行。

  #!/bin/bash

for i in `seq 2 5`
do
{
  java -jar Vehicle_V1.0.1.jar --server.port=808$i --spring.config.location=/home/huizhi/kaiyue/application_808$i.properties;
  sleep 5
  echo "start $i is succeed!"
} &
done

linux后台进程:
shell的元字符&提供了在后台运行不需要键盘输入的程序的方法。
输入命令后,其后紧跟&字符,该命令就会被送往到linux后台执行,
而终端又可以继续输入下一个命令了。
比如:
sh a.sh &
sh b.sh &
sh c.sh &
这三个命令就会被同时送往linux后台执行,
在这个程度上,认为这三个命令并发执行了。

注意

实现多线程的原因在于for循环之后的&符号,具体的&功能可自行网络搜索了解。

二、shell多线程杀死程序

以下程序是杀死显卡上运行的java程序(根据自身不同的情况修改代码)
功能:多线程杀死显卡上运行的java程序,并显示显卡状态。
在这里插入图片描述
代码如下
(注:其中的休眠时间并非必须。)

#!/bin/bash

pid=`jps|grep jar`
echo $pid
for id in $pid
do
{
  kill -9 $id
  echo "kill $id"
  sleep 1
} &
done
sleep 2
nvidia-smi
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

绛洞花主敏明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值