容器云设置自动启动服务

[西数镜像] 默认是使用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



非[西数镜像]时,请登录到容器管理页面,找到启动命令

image.png


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





日期:2019-07-26

打印 】