运行 python 当互联网连接在 Jetson Nano 上可用时的脚本 (Ubuntu 18.04)

Run python script when internet connection becomes available on Jetson Nano (Ubuntu 18.04)

我需要设置一个 Jetson Nano 设备,以便在每次互联网连接可用时启动 Python 脚本。

因此,参考 this question,我做了以下操作:

#!/bin/sh

# create a dummy folder to check script execution
mkdir /home /user_name/dummy_folder_00

# kill previous instances of the system
pkill python3

# move to folder with python script and launch it
cd /home/user_name/projects/folder
/usr/bin/python3 launcher.py --arg01 --arg02 ...

# create another dummy folder to check script execution
mkdir /home /user_name/dummy_folder_01

现在,每次我插拔以太网电缆时,我都可以看到在 /home/user_name 中创建了虚拟文件夹,但是 python 脚本没有启动(至少,它不会出现在系统监视器中)。我从终端尝试 运行 脚本中的命令,一切正常,python 程序按预期启动。我做错了什么吗?

我想找出一些与你相似,但又不完全相同的东西..

这个解决方案得到了我的脚本 python 脚本 运行ning 在互联网连接后 ,我可以检查日志并且一切正常:

Raspbian - Running A Script After An Internet Connection Is Established

但是,我的脚本使用 notify-send 向我的 window 经理发送通知,我似乎无法使用 systemd - 当 运行 在用户 space 所以我认为这与 systemd 和 Xorg 有关。希望这对您来说不是问题,我希望这能解决您的问题。

中间不需要 bash 脚本,我使用 chmod u+x <file>.py 为 运行 我的 python 脚本提供了 systemd 服务,并将 #!/usr/bin/env python3 在 python 文件的顶部,这样它就可以直接在 .service 文件下执行,如下所示:

ExecStart=/path/to/file/file.py

好吧,我猜是权限的问题,我通过运行一切都解决了user_name,所以我修改脚本为

sudo -user user_name /usr/bin/python3 launcher.py --arg01 --arg02 ...