容器云设置自动启动服务
发布时间:2019-07-26
[西数镜像] 默认是使用supervisor来管理启动程序,默认已经安装和配置好了sshd,如果您有自己的程序需要容器启动时自动启动,请按照下面教程设置。
比如启动宝塔面板命令为 supervisorctl start bt: (如果没有效果,先执行:rm -rf /www/server/panel/logs/panel.pid)
非[西数镜像]请参考本教程末尾说明
Centos 系统配置文件目录 /etc/supervisord.d/,文件后缀为ini
Ubuntu、Debian系统配置文件目录/etc/supervisor/conf.d/, 文件后缀为conf
本教程使用nginx作为示例
1. 先安装配置好应用程序,编译安装、yum、apt-get均可,安装步骤略。
2. 建立配置文件
centos: /etc/supervisord.d/nginx.ini
Ubuntu、Debian: /etc/supervisor/conf.d/nginx.conf
[program:nginx] command=/usr/sbin/nginx -c /etc/nginx/nginx.conf -g 'daemon off;' autorestart=True
3.更新配置文件
在终端中输入命令 supervisorctl update
root@e9f9b9578ebb:/# supervisorctl update nginx: added process group
4.查看状态
在终端中输入命令 supervisorctl status
root@e9f9b9578ebb:/# supervisorctl status nginx RUNNING pid 440, uptime 0:00:37 sshd RUNNING pid 26, uptime 0:41:50
状态是RUNNING表示运行中。
supervisroctl常用命令
supervisorctl stop nginx # 停止nginx supervisorctl start nginx # 启动nginx supervisorctl restart nginx # 重启nginx supervisorctl stop all # 停止所有进程 supervisorctl start all # 启动所有进程 supervisorctl restart all # 重启所有进程 supervisorctl reload # 重新加载supervisor supervisorctl status # 查看服务状态 supervisorctl update # 更新supervisor,一般增加或者修改启动配置文件后要运行该命令生效
常用程序启动配置文件(文件路径请按照自己实际路径)
apache
[program:httpd] command=/usr/sbin/httpd -D FOREGROUND autorestart=True
mysql
[program:mysqld] command=/usr/bin/pidproxy /tmp/mysqld.pid /usr/sbin/mysqld_safe --datadir=/home/mysql_data --pid-file=/tmp/mysqld.pid autorestart=True user=mysql
redis
[program:redis] command=/usr/local/bin/redis-server /etc/redis.conf autorestart=True
tomcat
[program:tomcat] directory=/www/server/tomcat/bin command=/www/server/tomcat/bin/catalina.sh run autorestart=True
非[西数镜像]时,请登录到容器管理页面,找到启动命令

如果启动命令是脚本文件,在容器中找到该脚本,把要随容器启动的程序的命令行,添加到此启动脚本中。
