O cd ~
pode não funcionar (já que a expansão do til não é universal) . Prefira cd $HOME
para ele (o que é garantido para fazer o mesmo para todas as implementações de /bin/sh
...) ..... Lembre-se que POSIX sh
(ou /bin/sh
) é geralmente não bash
(e seu /bin/sh
pode não ser totalmente compatível com POSIX, mas mais como "bourne")!
Claro, você poderia adicionar algo como pwd > /dev/stderr
em seu script (para fins de depuração).
wine
geralmente precisa de um servidor X11 para exibir janelas. E um programa iniciado a partir de cron
geralmente não possui qualquer servidor ou terminal X11. Então wine
provavelmente está falhando em iniciar (do seu trabalho cron
). Talvez seja necessário definir uma variável DISPLAY
para o Xlib . Mas você pode usar o Xvfb, veja aqui .
Por fim, pgrep (1) está analisando os processos. Use ps aux | grep "D2GS"
ou saiba como usar pgrep
sozinho.
Eu recomendo usar echo something > /dev/stderr
ou melhor echo
ou printf (1) (com um adequado redirecionamento ) ou logger (1) no seu script, pelo menos para fins de depuração (em vários lugares).
E eu não vou redirecionar wine
-s stderr e stdout para /dev/null
pelo menos durante a fase de depuração. Você não pode codificar (pelo menos temporariamente durante a depuração)
wine "C:/D2GS/D2GS.exe" >> /tmp/wine.out 2>&1
e procure em /tmp/wine.out
com algum pager como less
?
Seu cron
(e seu script de shell) não está usando sua variável PATH
. Você deve considerar defini-lo explicitamente no seu script (ou crontab
). Veja environ (7) .