温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Linux如何自动关机与计算任务管理

发布时间:2021-11-08 11:00:42 来源:亿速云 阅读:183 作者:小新 栏目:系统运维

这篇文章主要为大家展示了“Linux如何自动关机与计算任务管理”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux如何自动关机与计算任务管理”这篇文章吧。

1.自动关机脚本

每隔一定时间检测一次,如果不存在某个进程就关机,如果存在就休眠。

用法: ./脚本名 进程名 休眠时间

注意:要有关机的权限(一般来说是root用户或者有sudoer权限)!

建议用法: screen ./脚本名 进程名 休眠时间

#/bin/bash
 
while :
do
    thread_num=`ps -e |grep $1 | wc -l`
    if [ $thread_num -eq 0 ]; then
       date >> shutdowntime.log
       shutdown -h
       exit
   else
       echo "Sleeping $2 second..."
       sleep $2
   fi
done

2.计算任务管理脚本

简单的计算任务管理:检测某个为某个名字的进程的个数,如果不是少于设定的个数,就提交任务,直到进程数和设定的相等;如果进程数大于等于设定个数,就休眠一定时间。

用法:./脚本名 程序名 任务数 循环次数

建议用screen运行。

#!/bin/bash
 
pro_name=$1
task_num=$2
cycle_num=$3
 
i=1
while (( $i <= $cycle_num ))
do
  pro_num=$(ps -A | grep $pro_name |wc -l)
 
  if (( $pro_num < $task_num )); then
    echo $i
    #在这里写要执行程序
    sleep 1s
    i=$(($i+1))
  else
    echo 'sleeping 600s'
    sleep 600s
  fi
done

另外,可以在循环中针对时段控制任务数:

core_num=`cat /proc/cpuinfo |grep 'core id' | wc -l`
 
time_hour=`date +%H`
if (( $time_hour >= 23 )) || (( $time_hour < 7 ); then
     task_num=$core_num #晚上23:00以后到早上7点前这段时间,就按机器的core数来提任务
else
     task_num=$(( $core_num / 2 )) #其它时间只占用一半的core数来用于任务
fi

在执行完后所有该做循环这后,也可以加上关机的命令。

以上是“Linux如何自动关机与计算任务管理”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI