Eu não acho que o problema tenha algo a ver se o script é executado via atalho de teclado ou diretamente em um terminal. É um erro em sua ramificação if
e o script funcionará e falhará alternadamente.
Na ramificação if
que você escreveu
kill -SIGSTOP < /tmp/TimChromepid.PSD
que significa: canaliza o conteúdo do arquivo /tmp/TimChromepid.PSD
para o stdin de kill
. Mas kill
não lê nada de stdin , apenas aceita o PID como um parâmetro de linha de comando, que não foi dado. É por isso que você falou sobre seu uso.
Para corrigir isso, basta fazer o que você fez na ramificação else
, ou seja, substituir kill -SIGSTOP < /tmp/TimChromepid.PSD
por kill -SIGSTOP $(< /tmp/TimChromepid.PSD)
ou usar $NMR
:
#!/bin/sh
if [ -f /tmp/TimChromepid.RUN ]; then
mv /tmp/TimChromepid.RUN /tmp/TimChromepid.PSD
NMR=$(< /tmp/TimChromepid.PSD)
kill -SIGSTOP $NMR
else
NMR=$(< /tmp/TimChromepid.PSD)
mv /tmp/TimChromepid.PSD /tmp/TimChromepid.RUN
kill -SIGCONT $NMR
fi