光明圣火 2022-12-08 10:42 采纳率: 70.6%
浏览 34
已结题

设计一个根据进程存在与否决定启动与否的脚本,其中包括多个进程,想要寻求一些思路

各位好,单位的项目是由多个小服务配合一个主服务的java项目,每一次启动所有项目必须依次进入各自项目目录,然后守护线程的启动jar包,然后ctrl+c退出启动下一个;如果我现在想做一个脚本,每个要启动的进程判断是否存在,其中判断哪个进程没启动时则进入该目录启动进程。
现在参照网上,简单写了一个,但是在启动完一个进程要启动下一个进程时发现启动完一个进程正常需要ctrl+c按一下,然后才能继续下去,否则启动jar包后会自动进入jar包的日志输出(如果说改现有项目打包啥的不太现实,我没那么大权力改),当我按ctrl+c手动退出日志输出时,发现这个脚本也就结束了……有没有什么在脚本里类似ctrl+c的指令,并且不会退出当前脚本,然后执行下一个项目进程校验,也可能我思路不对,朋友们有更好建议也可以点拨一下……
这个是现在的脚本

#!/bin/bash
ps -fe|grep competence9091 |grep -v grep
if [ $? -ne 0 ]
then
echo "进程不存在将被启动"
cd /home/portalSys/competence9091
./start.sh start
else
echo "进程已存在"
fi

ps -fe|grep login9087 |grep -v grep
if [ $? -ne 0 ]
then
echo "进程不存在将被启动"
cd /home/portalSys/login9087
./start.sh start
else
echo "进程已存在"
fi

# 其中哪个./start.sh start是公司现有的一个脚本和启动指令,大概用途就是用来守护线程的启动这个jar包的,没什么特殊的,现在遇到的问题是第一个进程启动后,只能点ctrl+c,但是这样这个启动所有进程的脚本就同样退出了

然后我才疏学浅,非常感谢各位指点帮助!

  • 写回答

1条回答 默认 最新

  • pzzhao 2022-12-08 11:02
    关注

    在启动脚本后面加 & 让它后台执行可不可以呢

    ./start.sh start &

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月17日
  • 已采纳回答 12月9日
  • 修改了问题 12月8日
  • 修改了问题 12月8日
  • 展开全部