使用 systemd 作为服务执行的 python 脚本在启动时迭代挂载点

使用 systemd 作为服务执行的 python 脚本在启动时迭代挂载点

我想在系统启动时使用 Python 脚本迭代安装点。

该脚本在完全启动的系统上运行良好(即使调用为sudo systemctl start launcher.service),但在重新启动后启动时无法找到挂载点。

我猜系统需要一些时间在启动时安装外部设备,并且脚本启动得比这早,所以我应该将服务更改为在某些事情之后执行。

我现在的服务在[Unit]中没有 AFTER:

[Unit]
Description=Python script executing after reboot.

[Service]
Type=simple
User=jetson
WorkingDirectory=/home/jetson/
ExecStart=/usr/bin/python3.6 /home/jetson/launcher_script.py

[Install]
WantedBy=multi-user.target

我应该在AFTER=___systemd 中使用什么来在已安装驱动器的系统上启动脚本?或者是否有更可靠的方法来在启动的系统上自动执行脚本?

问题是我事先不知道安装点,因为 Jetson 将驱动器安装为/media/jetson/9DC3-C264/media/4A21-EE5D。这就是我编写一个 Python 脚本来迭代挂载点以搜索配置文件的原因之一(而且我无法挂载它,fstab因为它每次都可能是不同的驱动器/卡)。

Python 脚本看起来像这样:

#!/usr/bin/python3.6

import psutil
partitions = psutil.disk_partitions()

for p in partitions:
    if p.mountpoint != '/':
        #DO SOMETHING

我的系统是 NVIDIA Jetson 上的 Ubuntu 18.04。我想添加更新软件或更改其参数的可能性,而无需用户输入或通过外部 microSD 卡或 USB 驱动器进行网络。另外,我不能保证将安装驱动器,并且无论如何我都想启动脚本。

相关内容