Que tal
sudo -u "$user" bash -c "script -c \"$cmd& echo $! > \"$pid_file\"\"" >> "$stdout_log" 2>> "$stderr_log" &
Eu tenho uma pergunta sobre um script init.d.
Atualmente tenho um script de inicialização que inicia um daemon personalizado da seguinte forma:
sudo -u "$user" $cmd >> "$stdout_log" 2>> "$stderr_log" &
echo $! > "$pid_file"
O daemon funciona desde que eu execute o script de inicialização como root.
O daemon precisa de acesso para criar telas, mas por causa do CentOS 6.7 eu preciso usar uma solução alternativa para permitir que usuários não-root executem telas usando o comando ´´script´´ ( Como posso iniciar uma sessão 'screen' como usuário não-root ) e termino com a seguinte linha que inicia o daemon perfeitamente como um usuário não-root.
sudo -u "$user" bash -c "script -c \"$cmd\"" >> "$stdout_log" 2>> "$stderr_log" &
Os problemas começam quando eu tento ecoar e canalizar o pid do processo para o arquivo pid, uma vez que ele fornece o pid do comando ´script´ e não do próprio daemon.
Alguém tem uma sugestão ou uma solução para obter o pid do daemon?
Que tal
sudo -u "$user" bash -c "script -c \"$cmd& echo $! > \"$pid_file\"\"" >> "$stdout_log" 2>> "$stderr_log" &