我试图让网络管理器调度程序在网络接口启动或关闭时运行脚本。我想在连接建立或断开时执行 espeak 命令。 我可以让它写入文件 /tmp/log 但我没有听到 espeak 命令的任何声音即使我可以直接在终端上输入它并且它可以工作。
我测试的方法是断开我的USB网卡(这是我机器上唯一的网卡)
我已将可执行文件放入/etc/NetworkManager/dispatcher.d
(称为02-ifupdown测试)
-rwxr-xr-x 1 root root 2293 Mar 26 2018 01-ifupdown
-rwxr-xr-x 1 root root 534 Jan 23 16:42 02-ifupdowntest
-rwxr-xr-x 1 root root 5383 Mar 27 2018 99tlp-rdw-nm
参见内容02-ifupdown测试以下:
#!/bin/bash -e
if [ "$2" = "up" ]; then
echo "`date`" > /tmp/log
echo "$1" >> /tmp/log
echo "$2" >> /tmp/log
echo "`/usr/bin/espeak "network up"`"
fi
if [ "$2" = "down" ]; then
echo "$2" >> /tmp/log
echo "`/usr/bin/espeak "network down"`"
fi
exit 0
我使用的是 Ubuntu 18.04 64 位 Linux