以下操作caddy版本为 v2.6.1
推荐第二种方法,这样当caddy非正常退出后,系统会重新启动caddy
方法一:
vi /etc/rc.local
在exit 0前添加如下代码
cd /root/caddy ./caddy &
方法二:
systemd方法
首先在下面路径建立一个caddy.service文件,以centos7为例
#编写caddy.service文件 vi /etc/systemd/system/caddy.service #将下面的代码复制进去 [Unit] Description=Caddy webserver Documentation=https://caddyserver.com/ After=network.target [Service] User=root #Group=some_group WorkingDirectory=/root/caddy LimitNOFILE=4096 ExecStart=/root/caddy/caddy run --config /root/caddy/Caddyfile ExecStop=/bin/kill $MAINPID Restart=on-failure StartLimitInterval=600 [Install] WantedBy=multi-user.target
如果你的运行命令和上面的不同,需要对service文件进行修改,将文件的 ExecStart 改为你的运行命令,更改完成后需要输入
systemctl daemon-reload
管理命令
开机启动:systemctl enable caddy 取消开机启动:systemctl disable caddy 启动:systemctl start caddy 或者 service caddy start 重新启动:systemctl restart caddy 或者 service caddy restart 停止运行:systemctl stop caddy 或者 service caddy stop 查看运行状态:systemctl status caddy
配置文件的简要说明(机器翻译的,有些不通顺):
After=network.target 在启动时加载所有网络内容后,它将自动启动Caddy。
User,Group并WorkingDirectory为自己说话…确保您的Caddyfile位于工作目录中。您始终可以手动指定Caddyfile的位置: $ caddy -conf=”/path/to/Caddyfile”。
LimitNOFILE=4096设置最大文件描述符(具有良好的生产价值),就像 ulimit -n 4096在终端中那样。
ExecStart是将要执行的实际脚本。
Restart=on-failure 如果Caddy崩溃(即以非零退出代码停止),它将自动重新生成Caddy进程。
StartLimitInterval=600 确保如果Caddy崩溃过多(通过systemd的默认值设为5),它将等待10分钟,然后重试。
WantedBy 指定我们要包含此服务的目标。