ssh bash ターミナルを使用して bot.py コードを実行する ubuntu サーバーをローカル マシンにセットアップしました。私の bot.py は連絡先から URL を取得し、docker と selenoid を使用して Web ページにアクセスします。docker と selenoid をセットアップしましたが、うまく機能します。私が実行すると:
$ sudo ./myscript_ro_run_bot.sh
[myscript_ro_run_bot.sh 内]:
#!/bin/bash
while true
do
echo "running bot.py"
nohup sudo python3 bot.py # nohup to run at background
wait
echo "bot.py finished"
echo "running bot1.py"
nohup sudo python3 bot1.py
wait
echo "bot1.py finished"
.....
echo "runnning bot5.py"
nohup sudo python3 bot5.py
sleep 10m
done
(5 つの bot.py ファイルがあります)
Telegram のローカル マシン メッセージ (myscript_ro_run_bot.sh) で、サイトが訪問され、報われていることを確認できます。ローカル マシンでも (myscript_ro_run_bot.sh) は 24 時間年中無休 (無期限) に実行できます。しかし、サーバーで 24 時間年中無休で実行したいのです。問題は、ssh bash ウィンドウ マネージャーを閉じると、ローカル マシンの Telegram で何も起こらず、メッセージが表示されないことです。これは、5時間または1時間後にsshを使用してサーバーに再度接続し、再接続後にのみテレグラムでメッセージを受信し始めるときのトリックです。コマンドを使用してサーバーでジョブが実行されていることを確認できます。
使用した場合$ htop
、コマンドsudo python3 bot.py
が実行されています。
$ sudo crontab -e
@reboot /home/user/myscript_ro_run_bot.sh >> /home/user/myscrit_to_run_bot.log
再起動後、ssh でサーバーに接続し、myscrit_to_run_bot.log から結果を取得しました。
running bot.py
bot.py finished
running bot1.py
bot1.py finished
running bot3.py
しかし、再接続後、テレグラムでメッセージを受け取りませんでした。スクリプトを手動で実行してサーバーに再接続すると、テレグラムでメッセージが表示されます。
誰でも問題を解決する方法を教えてもらえますか? sudo ./myscript_ro_run_bot.sh
ssh bash ターミナルを閉じても実行したい。私はコーディングとLinuxが初めてなので、詳細を提供してほしい場合はcommands
、同様に書いてください(詳細な説明)。私はあなたの助けに感謝します