Eu tenho dois scripts bash. Um é executado como root e chama outro como usuário "paralelo"
/root/cronrun.sh
#! /bin/bash
PARR="thisparameter"
echo "Starting at 'date'" >> /root/rlog.log
runuser -l parallels -c "/home/parallels/testscript/newscript.sh $PARR"
echo "Finishing at 'date'" >> /root/rlog.log
/home/parallels/testscript/newscript.sh
#! /bin/bash
PARAMM=$1
echo "'date' - newscript.sh ran with $PARAMM" >> /home/parallels/somelog.log
Ran / root /cronrun.sh da linha de comando como root em
18:17:28 CET
18:17:29 CET
Adicionado ao crontab
*/2 * * * * /root/cronrun.sh
Então correu às 18:20:00 CET via cron
Depois disso:
/root/rlog.log
Starting at Thu Nov 16 18:17:28 CET 2017
Finishing at Thu Nov 16 18:17:28 CET 2017
Starting at Thu Nov 16 18:17:29 CET 2017
Finishing at Thu Nov 16 18:17:29 CET 2017
Starting at Thu Nov 16 18:20:01 CET 2017
Finishing at Thu Nov 16 18:20:01 CET 2017
/home/parallels/somelog.log
Thu Nov 16 18:17:28 CET 2017 - newscript.sh ran with thisparameter
Thu Nov 16 18:17:29 CET 2017 - newscript.sh ran with thisparameter
Portanto, a entrada de log do echo no shell do runuser está ausente. Por que isso pode ser possível? Como o cron roda de maneira diferente neste caso, o que faz com que o comando "runuser" seja ignorado / falhado?
(Sistema reproduzido no Ubuntu 16.04.3 LTS)
(SHELL = / bin / bash no crontab não está resolvendo)