初探shell脚本(.sh)

it2025-08-17  7

工作中经常SSH远程的服务器上面重启各种服务器,重启服务时(如:tomcat服务),“查进程ID”=》“杀相应进程”。一次两次感觉还好,操作频繁了,用久了就感觉很繁琐,有没有什么工具可以一键重启服务(如:tomcat服务)。对于shell脚本基本没写过,记录一下学习过程吧。

研究了半天想用shell脚本实现,根据进程名称杀进程。后来才发现,竟然有现成的命令可以用。

pkill -f name

 -------------下面是研究过程,自己记录一下----------------

输入指令交互示例

#!/bin/bash ## author:itkey ## 每次收到启动,frp感觉挺麻烦的,写个脚本直接搞定挺好 ## chmod +x *.sh 增加脚本可执行权限 date "+%Y-%m-%d %H:%M:%S 星期%w" echo '==============脚本菜单===============' echo '1.内网穿透' echo '2.开启redis服务' echo '3.开始宿管系统本地服务器(正式库)' echo '4.查看宿管系统的进程' read -p "请选择:" task echo "你选择的任务是:$task" if ((task==1)); then echo "1.内网穿透" sh /Users/itkey/mac/soft/itkey_shell/frppay.sh fi if ((task==2)); then echo "2.开启redis服务" cd /Users/itkey/mac/soft/redis-6.0.7/src ./redis-server fi if ((task==3)); then echo "3.开始宿管系统本地服务器(正式库)" cd /Users/itkey/mac/Runtime/LiveBOSTomcat_SG_PROD/bin ./startup.sh tail ../logs/catalina.out fi if ((task==4)); then echo "4.查看宿管系统的进程ID" ps -ef | grep LiveBOSTomcat_SG | grep -v grep | awk '{print $2}' fi

根据进程名称获取进程ID

 ps -ef查进程格式

ps -ef | grep 这里换成进程名称 | grep -v grep | awk '{print $2}'

 

简单方法

pgrep -f name

 

查进程并杀进程

pkill -f name

参考:

https://blog.csdn.net/baidu_33850454/article/details/78568392

最新回复(0)