博客的一些小事儿(宝塔/Docker/服务开机自启)

一、宝塔打不开

宝塔是一个非常方便的控制面板,不过用宝塔时,偶尔遇见重启了下服务器宝塔就再也进不去了,其实是因为Linux系统自带防火墙给宝塔的端口给默认拦截了,这玩意儿该用的时候没卵用,不需要的时候就净出来添乱,所以还是关了的好,用服务器防火墙就够了。

centos7永久关闭防火墙

systemctl stop firewalld.service
systemctl status firewalld.service
# 查看状态后可以看到Acive状态已经变成了 disavtive(dead) 
systemctl disable firewalld.service

现在,防火墙就永久关闭了。

二、Docker启动报错

有时启动docker时会提示iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport,然后又有什么 500 错误状态码,反正看起来挺唬人的。

其实,根本就没有什么大问题,你要去到处改配置文件改死也没有用,重启下docker服务就行了= =

systemctl restart docker

三、服务开机自启

CentOS7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,需要开机不登陆就能运行的程序,存在系统服务里,即:/usr/lib/systemd/system目录下.

CentOS7的每一个服务以.service结尾,一般会分为3部分:[Unit]、[Service]和[Install]

[Unit]部分主要是对这个服务的说明,内容包括Description和After,Description 用于描述服务,After用于描述服务类别
[Service]部分是服务的关键,是服务的一些具体运行参数的设置.
Type=forking是后台运行的形式,
User=users是设置服务运行的用户,
Group=users是设置服务运行的用户组,
PIDFile为存放PID的文件路径,
ExecStart为服务的具体运行命令,
ExecReload为重启命令,
ExecStop为停止命令,
PrivateTmp=True表示给服务分配独立的临时空间

注意:

[Service]部分的启动、重启、停止命令全部要求使用绝对路径,使用相对路径则会报错!

[Install]部分是服务安装的相关设置,可设置为多用户的

首先,使用systemctl start [ 服务名(也是文件名) ] 可测试服务是否可以成功运行,如果不能运行则可以使用systemctl status [ 服务名(也是文件名) ]查看错误信息和其他服务信息,然后根据报错进行修改,直到可以start,如果不放心还可以测试restart和stop命令。

接着,只要使用systemctl enable xxxxx就可以将所编写的服务添加至开机启动即可。

实例:cloudreve私有云盘配置后台运行

1、在/usr/lib/systemd/system目录下创建一个服务cloudreve.service

通过vi打开服务配置:

vi /usr/lib/systemd/system/cloudreve.service

输入如下内容:

[Unit]
Description=Cloudreve
Documentation=https://docs.cloudreve.org
After=network.target
Wants=network.target

[Service]
Type=simple
WorkingDirectory=/home/software/cloudreve
ExecStart=/home/software/cloudreve/cloudreve
Restart=on-abnormal
RestartSec=5s
KillMode=mixed

StandardOutput=null
StandardError=syslog

[Install]
WantedBy=multi-user.target

2、更新重启服务

# 更新配置
systemctl daemon-reload

# 启动服务
systemctl start cloudreve

# 设置开机启动
systemctl enable cloudreve

3、管理命令


# 启动服务
systemctl start cloudreve

# 停止服务
systemctl stop cloudreve

# 重启服务
systemctl restart cloudreve

# 查看状态
systemctl status cloudreve
无标签