Claw cloud 容器改造 VPS, 使用 supervisor 管理容器进程,实现应用开机自启、自动保活、cron 规则持久化
Vevc • • 381 人浏览
本期摘要:Claw cloud | 容器vps | supervisor | 多进程保活 | cron
Claw cloud 注册地址:
https://console.run.claw.cloud/signin?link=TSWVWVN3G294
项目地址:
https://github.com/vevc/ubuntu
Supervisor 官网及项目地址:
https://supervisord.org
https://github.com/Supervisor/supervisor
进程管理工具选择
❌ systemctl: 宿主机一般不会给特权模式
✅ supervisor: 作为1号进程启动,管理其他进程,让容器拥有多进程自启、保活功能
改造前
1、启动测试进程
sudo /usr/sbin/cron
nohup python3 -m http.server 8080 1>/dev/null 2>&1 &
ps aux
2、添加一个定时任务
cat > /home/$USER/cron.sh << EOF
#!/usr/bin/env sh
date >> /home/$USER/cron.log
EOF
chmod +x /home/$USER/cron.sh
(crontab -l 2>/dev/null; echo "* * * * * /home/$USER/cron.sh") | crontab -
3、重启容器,cron 进程停止、http.server 服务进程停止、cron 定时任务规则丢失
改造
1、准备配置文件
mkdir ~/boot # 家目录文件可持久化保存
cat > /home/$USER/boot/supervisord.conf << EOF
[supervisord]
nodaemon=true
logfile=/tmp/supervisord.log
logfile_maxbytes=5MB
logfile_backups=3
loglevel=info
[program:sshd]
command=/usr/sbin/sshd -D
autostart=true
autorestart=true
[program:cron]
command=/usr/sbin/cron -f
autostart=true
autorestart=true
[program:init]
command=/home/$USER/boot/init.sh
autostart=true
; init.sh 开机自启仅运行一次
autorestart=false
startretries=0
user=$USER
[program:http-server]
command=python3 -m http.server 8080
autostart=true
autorestart=true
user=$USER
EOF
cat > /home/$USER/boot/init.sh << EOF
#!/usr/bin/env sh
(crontab -l 2>/dev/null; echo "* * * * * /home/$USER/cron.sh") | crontab -
EOF
chmod +x /home/$USER/boot/init.sh
2、更新容器启动参数
- Arguments:
["supervisord", "-c", "/home/vevc/boot/supervisord.conf"]
(注意路径中的用户名)
改造后
- 重启容器测试
- kill 进程保活测试
常见问题
- supervisord.conf 配置文件不小心写错怎么恢复