Więc obecnie próbuję udev
zrobić pewne rzeczy (rozpocząć airmon-ng) po podłączeniu określonej karty sieciowej WiFi USB. Ale mam problemy z uruchomieniem wbudowanych skryptów do pracy. Problem można odtworzyć za pomocą następującego prostego przykładu:
Utwórz następujący skrypt wykonywalny /test.sh
:
#!/bin/sh
echo hello > /tmp/test.txt
Utwórz następujący plik /etc/udev/rules.d/85-auto-monitor.rules
:
# This works:
ACTION=="move", KERNEL=="wlx8416f91a5ed3", RUN+="/test.sh"
# This does not work:
# ACTION=="move", KERNEL=="wlx8416f91a5ed3", RUN+="sh -c 'echo hello > /tmp/test.txt'"
Użyj następującego polecenia, aby ponownie załadować .rules
plik:
sudo udevadm control --reload
Po prostu nie rozumiem, dlaczego działa skrypt zewnętrzny, ale nie wbudowany. Skrypty wbudowane działają, jeśli uruchomię je w terminalu.