我正在为我的 linux 类(class)做一个实验室,老师正在教我们有关 Systemd 的知识。
如何使用此命令创建在安装特定设备时启动脚本的服务: mount/dev/xvdc1/mnt/backup
我尝试过的
- 我使用计时器检查了
/mnt/backup
是否是挂载点。 (老师不接受,必须严格事件驱动) - 创建 .mount 单元并使 .service 单元需要 .mount 单元。这种做法在执行命令时没有启动脚本:
mount/dev/xvdc1/mnt/backup
我想我可能以错误的方式解决了这个问题。这是实验室问题。
"Create a unit file that copies all the files from
/mnt/backup
using rsync as soon as/dev/xvdc1
is mounted."
我所知道的:
- 将要挂载的设备总是
/dev/xvdc1
- 设备的挂载点总是
/mnt/backup
- 服务必须基于正在挂载的
/dev/xvdc1
启动
这是我的 .service 单元文件
[Unit]
Description=Starts a backup for /dev/xvdc1 when mounted using the mount command.
[Service]
Type=simple
ExecStart=/root/backupscript.sh
ExecStop=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
最佳答案
无论这在stackoverflow 中是否合适,我都不认为Set systemd service to execute after fstab mount满足 Ops 要求 - 我认为要求是 systemd 在执行挂载时及时启动服务。鉴于此,我会让一个 systemd 服务单元执行命令 findmnt -pmount -f/mount/point
,并让另一个 systemd 单元等待它。
关于linux - 挂载命令后如何启动系统服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41646913/