在linux服务器上监视指定程序是否正常进行

简介: 运行在linux服务器的程序,运行一段时间会自动断开终止运行,所以写了如下脚本去监视该进程是否正常运行,如果指定进程断掉,则自动重新启动。并将日志写入指定文件中:

需求

运行在linux服务器的程序,运行一段时间会自动断开终止运行,所以写了如下脚本去监视该进程是否正常运行,如果指定进程断掉,则自动重新启动。并将日志写入指定文件中:

1.脚本

代码如下(示例):

#!/bin/sh
while true
do
MYDATE=$(date +"%Y-%m-%d %H:%M:%S")
echo "$MYDATE" >> checkhzzm.log
ps -ef | grep "hzzm.jar"| grep -v "grep" >>checkhzzm.log
if [ "$?" -eq 1 ]     #上一条命令返回值0成功,1失败
then
    cd hzzm
    ./start.sh    #要运行的应用程序、脚本等
    echo "process has been restarted!" >>checkhzzm.log
else
    echo "process already started!" >>checkhzzm.log
fi
  sleep 30
 done

2.linux后台运行脚本的方法和命令

后台运行脚本

  1. 执行脚本test.sh: ./test.sh
  2. 中断脚本test.sh:ctrl+c
  3. 在1的基础上将运行中的test.sh,切换到后台并暂停:ctrl+z
  4. 执行ctrl+z后,test.sh在后台是暂停状态(stopped),使用命令:bg number让其在后台开始运行(“number”是使用jobs命令查到的 [ ]中的数字,不是pid)
  5. 直接在后台运行脚本test.sh: ./test.sh &
  6. 查看当前shell环境中已启动的任务情况:jobs
  7. 将test.sh切换到前台运行:fg %number(”number”为使用jobs命令查看到的 [ ] 中的数字,不是pid)
  8. 中断后台运行的test.sh脚本:先fg %number切换到前台,再ctrl+c;或是直接kill %number
目录
相关文章
|
8天前
|
Linux
Linux——服务器时间不同步
Linux——服务器时间不同步
20 0
|
7天前
|
缓存 安全 Linux
本地YUM源大揭秘:搭建您自己的Linux软件宝库,从此告别网络依赖!一文掌握服务器自给自足的终极技能!
【8月更文挑战第13天】在Linux中,YUM是一款强大的软件包管理工具,可自动处理依赖关系。为适应离线或特定安全需求,本指南教你搭建本地YUM源。首先创建存放软件包的`localrepo`目录,复制`.rpm`文件至其中。接着,安装并运用`createrepo`生成仓库元数据。随后配置新的`.repo`文件指向该目录,并禁用GPG检查。最后,清理并重建YUM缓存,即可启用本地YUM源进行软件搜索与安装,适用于网络受限环境。
25 3
|
6天前
|
监控 Linux Shell
"揭秘!一键掌控Linux服务器健康的秘密武器——超实用系统检查脚本,让你的服务器稳如老狗,告别宕机烦恼!"
【8月更文挑战第14天】服务器宕机或资源耗尽会严重影响业务。为此,你需要一个Linux系统检查脚本来守护服务器健康。它可以自动检测潜在问题如磁盘满载、内存泄漏等,避免服务中断。脚本应包括磁盘空间、内存/CPU使用、系统时间准确性、关键服务状态及系统日志分析等检查项。通过编写并定期运行这样的脚本,可以显著提高服务器的稳定性和可靠性。
18 1
|
5天前
|
存储 监控 Unix
|
5天前
|
Oracle Java 关系型数据库
简单记录在Linux上安装JDK环境的步骤,以及解决运行Java程序时出现Error Could not find or load main class XXX问题
本文记录了在Linux系统上安装JDK环境的步骤,并提供了解决运行Java程序时出现的"Error Could not find or load main class XXX"问题的方案,主要是通过重新配置和刷新JDK环境变量来解决。
18 0
|
5天前
|
安全 Linux Shell
如何在 Linux 服务器上配置基于 SSH 密钥的身份验证
如何在 Linux 服务器上配置基于 SSH 密钥的身份验证
14 0
|
11天前
|
Linux 网络安全 数据安全/隐私保护
Linux专栏03:使用Xshell远程连接云服务器
Linux专栏03:使用Xshell远程连接云服务器
19 0
|
13天前
|
Linux Python
解决Linux服务器中pip安装包后,能使用pip show packageName 却不能import
本文讨论了在Linux服务器中使用pip安装Python包后,通过pip show命令能查看包信息但无法import的问题,并提供了两种解决方法:一是解决因用户权限不一致导致的问题,二是解决因Python环境版本不匹配导致的问题。
22 0
|
13天前
|
网络安全 数据安全/隐私保护 iOS开发
【Mac os】如何在服务器上启动Jupyter notebook并在本地浏览器Web端环境编辑程序
本文介绍了如何在服务器上启动Jupyter Notebook并通过SSH隧道在本地浏览器中访问和编辑程序的详细步骤,包括服务器端Jupyter的启动命令、本地终端的SSH隧道建立方法以及在浏览器中访问Jupyter Notebook的流程。
24 0
|
13天前
|
关系型数据库 Linux 应用服务中间件
linux服务器下LNMP安装与配置方法
通过遵循上述步骤,你已经在Linux服务器上成功配置了LNMP环境。这只是初步设置,根据你的实际需求,可能需要进一步的调整与优化。记得经常检查每个组件的默认配置文件,并根据需要进行调整以优化性能和安全性。
11 0