A resposta do zmode é útil, mas não funcionou para mim. Depois de muita leitura, encontrei esta solução:
#!/bin/sh
if arp-scan -I eth0 -r 10 android | grep -q '12:34:56:78:90:ab'
then
echo "Phone present, killing motion"
killall motion
echo "Done killing motion"
else
echo "Phone absent, starting motion"
if ! ps -A | grep -q motion
then
echo "Motion is not running - starting it"
su -c 'motion' - username
echo "Motion started"
else
echo "Motion already running"
fi
echo "Done starting motion"
fi
exit
(O endereço MAC, o nome do host e o nome de usuário precisam ser substituídos.) Ele verifica se o telefone está na rede, usando o nome de host do telefone android
para evitar a varredura de endereços não relacionados. Ele verifica se o movimento já está em execução, por isso não inicia várias instâncias ou o mata repetidamente enquanto está funcionando.
Em seguida, execute sudo crontab -e
para editar o cron do usuário root e adicione uma linha como esta:
*/5 * * * * /home/username/phone_webcam/phone_webcam.sh >> /var/log/cron.log 2>&1
Isso executará o script a cada 5 minutos, registrando a saída para que você possa depurá-lo. Execute o comando tail -f /var/log/cron.log
para se certificar de que está funcionando. Depois de confirmar que funciona, remova a linha de log do crontab:
*/5 * * * * /home/username/phone_webcam/phone_webcam.sh