由于在内网部署,导致我必须使用
export
和import
这种方式进行加载我的镜像。在部署的时候我发现,当我启动容器可以正常起来,却没有启动我容器里面对应的服务。在思来想去,其实是由于我并没有吧我的脚本设置为启动容器就启动。知道问题后,我已centos7
以上的版本介绍,如何设置开机启动我们的脚本。
准备脚本
脚本名为:autoStart.sh
,内容如下
#!/bin/bash
/usr/local/tomcat/bin/startup.sh
方法一
这种方式将我们的脚本增加到启动配置中。
- 将我们的脚本加入到
/etc/rc.d/init.d
目录下
mv /houshuai/autoStart.sh /etc/rc.d/init.d
- 赋予脚本可执行权限
chmod +x /etc/rc.d/init.d/autoStart.sh
3 进行将脚本加入到启动配置中
chkconfig --add /etc/rc.d/init.d/autostart.sh
chkconfig /etc/rc.d/init.d/autostart.sh on
方法二
进行将我们的脚本设置为启动项中,我们只需要进行
systemctl
命令进行启动。
- 进行编写如下服务:此处以
nginx.service
为例子
# 当前服务的说明
[Unit]
# 描述服务
Description=nginx - high performance web server
# 描述服务的类型
After=network.target remote-fs.target nss-lookup.target
# 服务启动的参数设置
[Service]
# 是后台启动模式
Type=forking
# 服务具体运行命令
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
# 服务重启命令
ExecReload=/usr/local/nginx/sbin/nginx -s reload
# 服务停止命令
ExecStop=/usr/local/nginx/sbin/nginx -s stop
# PrivateTmp=True表示给服务分配独立的临时空间
# 注意:启动、重启、停止命令全部要求使用绝对路径
# 服务安装的相关设置,可设置为多用户
[Install]
WantedBy=multi-user.target
- 将编写好的文件存放到
/usr/lib/systemd/system
并赋予754权限
chmod 754 nginx.service
- 进行设置开机自启
systemctl enable nginx.service
常用的其他命令
- 启动nginx服务
systemctl start nginx.service
- 设置开机自启动
systemctl enable nginx.service
- 停止开机自启动
systemctl disable nginx.service
- 查看服务当前状态
systemctl status nginx.service
- 重新启动服务
systemctl restart nginx.service
- 查看所有已启动的服务
systemctl list-units --type=service