プロセスが自身を強制終了する場合でも、プロセスが実行されていることを確認するにはどうすればよいですか?(それから再起動する必要があります)
Linuxを使用しています。コンピューターを起動するたびにプロセス(ircボット)を実行したい。しかし、問題があります。ネットワークが悪く、頻繁に切断されるため、ボットを1日に数回手動で再起動する必要があります。どうすれば自動化できますか? 追加情報:ボットはbot.pidというpidファイルを作成します。ボットは数回しか再接続しません。ネットワークが非常に悪いので、ボットは応答がないために時々自分自身を殺します。 私が現在していること(別名私のアプローチ;))cronジョブをstartbot.rb5分ごとに実行しています。(スクリプト自体はボットと同じディレクトリにあります) スクリプト: #!/usr/bin/ruby require 'fileutils' if File.exists?(File.expand_path('tmp/bot.pid')) @pid = File.read(File.expand_path('tmp/bot.pid')).chomp!.to_i begin raise "ouch" if Process.kill(0, @pid) != 1 rescue puts "Removing abandoned pid file" FileUtils.rm(File.expand_path('tmp/bot.pid')) puts "Starting the bot!" Kernel.exec(File.expand_path('./bot.rb')) else puts "Bot up and running!" end else puts "Starting the bot!" Kernel.exec(File.expand_path('./bot.rb')) end これが行うこと:pidファイルが存在するかどうかを確認し、それが真である場合kill -s 0 BOT_PID …