Debian创建一个 file_new 的 系统服务(systemd)
步骤 1:确保脚本文件正确放置
- 将脚本文件保存到 /usr/local/sbin/ 目录下,并赋予执行权限:
- 确保脚本中的路径和权限正确,特别是涉及到的目录(如 /home/upload 和 /home/files)存在且可读写。
步骤 2:创建 systemd 服务单元文件
- 在 /etc/systemd/system/ 目录下创建一个新的服务单元文件,命名为 file_new.service:
1vim /etc/systemd/system/file_new.service
- 在文件中添加以下内容:
1234567891011121314[Unit]Description=File Monitor ServiceAfter=network.target[Service]Type=simpleExecStart=/usr/local/sbin/file_new.shRestart=on-failureRestartSec=5User=rootGroup=root[Install]WantedBy=multi-user.target- Description:服务的描述。
- After:指定服务在 network.target 之后启动,确保网络已就绪。
- ExecStart:指定要运行的脚本路径(/usr/local/sbin/file_new.sh)。
- Restart:如果服务失败,自动重启。
- RestartSec:重启前的等待时间(秒)。
- User 和 Group:以 root 用户运行服务。
- WantedBy:指定服务所属的目标(multi-user.target 是多用户模式)。
- 保存并退出编辑器。
步骤 3:重新加载 systemd 配置
- 重新加载 systemd 配置,使新服务生效:
1systemctl daemon-reload
步骤 4:启动并启用服务
- 启动服务:
1systemctl start file_new
- 设置服务为开机自启动:
1systemctl enable file_new - 检查服务状态,确保服务已成功启动:
1systemctl status file_new
如果服务正常运行,您会看到类似以下的输出:
123● file_new.service - File Monitor ServiceLoaded: loaded (/etc/systemd/system/file_new.service; enabled; vendor preset: enabled)Active: active (running) since ...
步骤 5:测试服务
- 在 /home/upload/ 目录下创建一个子目录(如 PDF),并上传一个符合要求的文件(如 .pdf 文件)。
- 检查文件是否被正确处理(移动到 /home/files/ 目录,并记录日志)。
- 查看服务日志,确认服务运行正常:
1journalctl -u file_new
步骤 6:管理服务
- 启动服务:
1systemctl start file_new
- 停止服务:
1systemctl stop file_new
- 重启服务:
1systemctl restart file_new
- 查看服务状态:
1systemctl status file_new
- 禁用开机自启动:
1systemctl disable file_new
- 查看服务是否开机启动:
12# 返回 enabled 是开机启动状态 返回 disable 是开机不启动systemctl is-enabled file_new