【问题标题】:How to start a system service after mount commandmount命令后如何启动系统服务
【发布时间】:2017-01-14 04:53:55
【问题描述】:

我正在为我的 linux 课程建立一个实验室,而老师正在教我们有关 Systemd 的知识。

如何使用此命令创建一个在特定设备挂载时启动脚本的服务: mount /dev/xvdc1 /mnt/backup

我尝试过的

  1. 使用定时器我检查了/mnt/backup 是否是一个挂载点。 (老师不接受,必须严格事件驱动)
  2. 创建 .mount 单元并使 .service 单元需要 .mount 单元。这种方式在执行命令时没有启动脚本:mount /dev/xvdc1 /mnt/backup

我想我可能以错误的方式处理这个问题。这是实验室的问题。

"创建一个单元文件,从/mnt/backup复制所有文件 挂载/dev/xvdc1 后立即使用 rsync。"

我知道的:

  1. 将要挂载的设备将始终为/dev/xvdc1
  2. 设备的挂载点将始终为/mnt/backup
  3. 服务必须基于正在挂载的/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

【问题讨论】:

标签: linux bash centos7 systemd


【解决方案1】:

不管这在 stackoverflow 中是否合适,我认为 Set systemd service to execute after fstab mount 不满足 Ops 要求 - 我认为要求是 systemd 在执行挂载时启动服务。鉴于此,我会让一个 systemd 服务单元执行命令 findmnt -pmount -f /mount/point,并让另一个 systemd 单元等待。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多