Upstart 在 Ubuntu Server 20.04 中自动挂载 USB

Upstart 在 Ubuntu Server 20.04 中自动挂载 USB

我想让我的家用 Ubuntu 服务器自动挂载 USB 设备。目前,我手动写入

sudo mount /dev/sda1 /media/library

但是,我尝试在 /etc/init 中编写 Upstart 脚本 start-library.conf,但没有成功。我做错了什么吗?该文件的内容如下:

exec sudo mount /dev/sda1 /media/library

我也尝试了一些小节,比如

script
    sudo mount /dev/sda1 /media/library
end script

但那也不起作用。我是否遗漏了 Upstart 模板中的某些内容?或者它只是因为在执行此脚本时这些 USB 设备尚未加载而无法工作?我能做些什么吗?指定运行级别?如果可以,指定哪一个?等等。我不知道。

答案1

usb安装是自动挂载和卸载 USB 大容量存储设备的工具。

您可以像这样安装它:

在终端中运行:

sudo apt update

然后运行:

sudo apt install usbmount

然后运行:

sudo systemctl restart udev

完成。当 USB 存储设备连接时,它将被挂载/media/usb[0-7],断开连接时它将被卸载。

答案2

我通过编写脚本并在启动时通过 rc.local 执行该脚本解决了我的问题:

  1. 脚本。将标签“MYUSB”更改为您的 USB 设备的标签。
#!/bin/bash
# FUNCTION: Mount or unmount usb device to library
# ARGUMENTS: none
# AUTHOR: Jeremy Lanssiers
# COPYRIGHT: 2021 GNU
# VERSION: 1.0
# REQUIRES: mount

# Check arguments

if [ -z "$1" ] || [[ ( $1 != "mount"  ) && ( $1 != "umount" ) ]]
then
    echo "USAGE: [mount/umount] [device]"
    exit 1
fi

# Set variables

DEVICE=$(blkid | egrep -o '\/dev\/(.*)\:\ LABEL="MYUSB"')

DEVICE=$(echo $DEVICE | egrep -o '\/dev\/[a-zA-Z0-9]{1,10}')

LIBRARY=/media/library

# Mount or unmount library

if [ $1 = "mount" ]
then
    mount $DEVICE $LIBRARY
    exit 0
fi

if [ $1 = "umount" ]
then
    umount $DEVICE $LIBRARY
    exit 0
fi

exit 1
  1. rc.本地
#!/bin/bash
# /etc/rc.local

# FUNCTION: execute scripts at startup
# ARGUMENTS: none
# AUTHOR: [email protected]
# COPYRIGHT: 2021 GNU
# VERSION: 1.0
# REQUIRES: mount

/opt/mount-lib.sh mount

/etc/sysctl.d
/etc/init.d/procps restart

exit 0

相关内容