
這是倆並不直接關聯的話題,寫在一起,是因爲都是在同一個星期內解決的問題,一起做筆記。
1、我在wap.ac以3美元1年的促銷活動價格,購買了1C1G的VPS,用來搭建TG轉發。
目前這裏有3項任務,分別是:
監聽若干個羣組中的所有消息,篩選出有文件代碼的消息,轉發給代碼機器人。
監聽監聽代碼機器人的消息,在需要點擊對話按鈕選擇“繼續加載”的時候,去點一下以便獲取後面未完成發送的媒體文件。
監聽代碼機器人的消息,把所獲得的媒體和文件,轉發到小夥伴的羣組裡。
這三項任務,分別由一個py腳本來進行。分別用pm2來啓動它。
pm2 start myScript.py --interpreter python3 --name mingzi
等3項都啓動起來了,檢查一下狀況:
pm2 list

pm2 startup
pm2 save
如果沒有正確的啓動,也可以收工輸入:
pm2 resurrect
2、自動對serv00的VPS進行SSH連接以保號,並且檢查那上面是否正確啓動了哪吒監控的客戶端。如果沒有,通過pm2來啓動它。
#!/bin/bash
for i in {1..2}
do
echo "Execution round $i"
# 第一台主機
sshpass -p '密碼' ssh -t -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null 賬戶名@s7.serv00.com << 'EOF1'
if pgrep -x "nezha-agent" > /dev/null
then
echo "nezha-agent is running on 賬戶名"
else
/home/賬戶名/.npm-global/bin/pm2 resurrect
echo "pm2 resurrect command executed on 賬戶名"
fi
exit
EOF1
# 第二台主機
sshpass -p '密碼' ssh -t -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null 賬戶名@s7.serv00.com << 'EOF2'
if pgrep -x "nezha-agent" > /dev/null
then
echo "nezha-agent is running on 賬戶名"
else
/home/賬戶名/.npm-global/bin/pm2 resurrect
echo "pm2 resurrect command executed on 賬戶名"
fi
exit
EOF2
# 第三台主機
sshpass -p '密碼' ssh -t -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null 賬戶名@s7.serv00.com << 'EOF3'
if pgrep -x "nezha-agent" > /dev/null
then
echo "nezha-agent is running on 賬戶名"
else
/home/賬戶名/.npm-global/bin/pm2 resurrect
echo "pm2 resurrect command executed on 賬戶名"
fi
exit
EOF3
# 第四台主機
sshpass -p '密碼' ssh -t -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null 賬戶名@s7.serv00.com << 'EOF4'
if pgrep -x "nezha-agent" > /dev/null
then
echo "nezha-agent is running on 賬戶名"
else
/home/賬戶名/.npm-global/bin/pm2 resurrect
echo "pm2 resurrect command executed on 賬戶名"
fi
exit
EOF4
# 第五台主機
sshpass -p '密碼' ssh -t -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null 賬戶名@s7.serv00.com << 'EOF5'
if pgrep -x "nezha-agent" > /dev/null
then
echo "nezha-agent is running on 賬戶名"
else
/home/賬戶名/.npm-global/bin/pm2 resurrect
echo "pm2 resurrect command executed on 賬戶名"
fi
exit
EOF5
done
echo "Script execution completed"
這個腳本,循環執行兩次,每次執行時,依次登錄5臺serv00主機,並且檢測是否有 “nezha-agent” 在運行中。如果有,就退出登錄,檢測下一臺。如果沒有,則通過喚醒pm2來啓動它。
使用cron來定時執行這個sh腳本:
编辑 crontab
文件:
crontab -e
在 crontab
文件中添加以下行:
*/15 * * * * /bin/bash /root/serv00-renew.sh
这里的 */15 * * * *
表示每 15 分钟执行一次。
这样设置后,cron
会每 15 分钟执行一次 /root/serv00-renew.sh
脚本。确保脚本有执行权限,可以使用以下命令设置权限:
chmod +x /root/serv00-renew.sh
转载请注明:刘太监的私藏 » pm2多進程管理和serv00保號