linux - 用于重新启动应用程序的 Bash 脚本

标签 linux bash ubuntu sh

你能帮我创建bash(或sh)脚本,该脚本将启动应用程序(./newserver)并且每小时都会杀死该应用程序(发送信号)然后重新开始。

还应该检查应用程序是否正在工作,如果没有,则重新启动,以防应用程序崩溃等情况。

对于 Linux ubuntu

最佳答案

正如人们已经指出的那样,这不是处理脚本问题的最佳方法。不过,我假设您有特殊原因需要这个。

#!/bin/bash
while :; do
   ./newserver &
   pid=$!
   sleep 1h
   kill -n 9 $pid
done

至于检查它是否有效,您必须创建一些分析来识别这一点。我对你的脚本一无所知,但我怀疑你会想尝试在 bash 中执行此操作。

除非“工作”只是指运行,在这种情况下

#!/bin/bash
run_server () {
  while :; do
    ./newserver &
    pid=$!
    sleep 1h
    kill -n 9 $pid
  done
}
run_server &
while :; do
  if [ "$(kill -n 0 $pid 2>&1)" ]; then
    run_server &
  fi
done

关于linux - 用于重新启动应用程序的 Bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14384689/

相关文章:

linux - 对于arm Linux,用户空间中的线程可以访问内核空间的虚拟地址吗?

ruby-on-rails - Nokogiri/Rails/zlib1g-dev 的问题

python - 无法在 Linux 上的 Python 3.6 中安装 discord.py

bash - 在什么情况下,文件通配符在 bash 中不起作用?

c - 自动为执行的程序提供输入

bash - 当 Perl 嵌入到 shell 脚本中时,如何查看父脚本中用实际行号报告的语法错误?

c++ - 为什么ubuntu 12.04下的OpenMP比串口版本慢

mongodb - 非法指令(核心转储)mongodb Ubuntu 20.04 LTS

mysql - 将 Linux 命令转换为 Windows (mysql)

mysql - 如何在Redhat Enterprise Linux 6.7中安装Mysql?