Use cron
para iniciar o daemon e eliminá-lo. Como o dropbox é executado como usuário, edite seu cronjob como seu usuário: crontab -e
e, no editor, coloque:
0 9 * * * $HOME/bin/dropbox-daemon-path
59 16 * * * pkill -u "$LOGNAME" dropbox-daemon-process-name
Às 9h, ele inicia o daemon dropbox (você deve fornecer o caminho completo aqui) e, em 1 minuto até as 17h, ele o mata (para esse usuário).
Adoraria ouvir alguém com uma resposta systemd
.
EDIT: Como Gilles aponta, isso não será de ajuda se o sistema estiver ligado entre 9 e 17. Novamente, essa abordagem de cronjob é sub-ótima, mas eu não sei como usar o dropbox com systemd
. Tendo dito isso, tentamos sua abordagem original em um script de wrapper que sai se a hora estiver fora de seus limites:
#!/bin/bash
hour=$(date +%H)
[ $hour -lt 09 -o $hour -gt 16 ] && exit
#else
exec path-to-dropbox-daemon
Modifique o crontab ligeiramente
* 9-16 * * * $HOME/bin/dropbox-wrapper-script
59 16 * * * sleep 50; pkill -u "$LOGNAME" dropbox-daemon-process-name
Para mim, isso não é bonito. Cada minuto seu script é executado pelo cron, deixando algumas linhas de logs para trás. Mas deve ser eficaz.