kasm docker是一个把chrome装进去的docker,直接运行在服务器上就能打开web页面,退出页面后也会保留。
Linux服务管理工具cockpit,能够可视化地管理服务,但是服务创建还需要通过ssh登录到服务器上操作(见上篇记录)。
kasm docker是一个把chrome装进去的docker,直接运行在服务器上就能打开web页面,退出页面后也会保留。
Linux服务管理工具cockpit,能够可视化地管理服务,但是服务创建还需要通过ssh登录到服务器上操作(见上篇记录)。
将这个 `updateddns.sh` 脚本放在 `startscript.sh` 中运行是可以的,但并不是最佳实践。因为它是一个无限循环的脚本,可能会带来一些问题,如无法平稳重启、停止或监控。最佳实践是将它转换为一个 **systemd** 服务,这样可以更好地管理它的启动、停止和重启。
### 最佳实践:将 `updateddns.sh` 作为 systemd 服务运行
#### 1. 编写 Shell 脚本
确保你的 `updateddns.sh` 脚本可执行,且放置在适当的目录(如 `/usr/local/bin/`):
“`bash
#!/bin/bash
while true
do
sleep 1m
myip=$(curl v4.ident.me)
curl http://***:***@api.dynu.com/nic/update?myip=$myip
sleep 2m
done
“`
确保脚本有执行权限:
“`bash
chmod +x /usr/local/bin/updateddns.sh
“`
#### 2. 创建 systemd 服务文件
在 `/etc/systemd/system/` 目录下创建一个 `.service` 文件,例如 `updateddns.service`:
“`bash
sudo nano /etc/systemd/system/updateddns.service
“`
服务文件内容如下:
“`ini
[Unit]
Description=Update DNS with Dynu API
After=network.target
[Service]
ExecStart=/usr/local/bin/updateddns.sh
Restart=always
RestartSec=60
[Install]
WantedBy=multi-user.target
“`
– `ExecStart`:指定你的脚本路径。
– `Restart=always`:确保脚本在失败时自动重启。
– `RestartSec=60`:在脚本意外退出后 60 秒再重启。
#### 3. 启动并设置开机启动
接下来,刷新 systemd 守护进程,启动服务并设置为开机自动启动:
“`bash
sudo systemctl daemon-reload
sudo systemctl start updateddns.service
sudo systemctl enable updateddns.service
“`
#### 4. 检查服务状态
你可以通过以下命令查看服务状态,确保它正常运行:
“`bash
sudo systemctl status updateddns.service
“`
### 为什么这样做是最佳实践?
– **可管理性**:通过 systemd,你可以轻松启动、停止和重启服务,避免手动操作。
– **自动重启**:如果脚本意外退出,systemd 会自动重启它。
– **日志记录**:使用 `journalctl` 查看服务的运行日志,更易于调试和监控。
这样,你的脚本运行更加安全、稳定,并且方便管理。