Acho que encontrei a resposta: não é possível usar su
para um usuário nologin
como um usuário normal, mas invocá-lo como superusuário funciona, nenhuma senha é solicitada.
De qualquer forma, tudo isso aconteceu porque esse comando era executado como um trabalho inicial (que é executado como root) e falhou consistentemente durante a inicialização. Então eu tentei depurá-lo do CLI.
Poderia ser interessante notar que no meu sistema (Ubuntu 14.04), o script /etc/init/gcp.conf não funcionava na sua versão wiki, eu tive que adicionar uma pausa de 40 segundos para lançá-lo de forma confiável no momento da inicialização:
start on (local-filesystems and net-device-up)
stop on runlevel [!2345]
respawn
pre-start script
sleep 40
end script
exec su -l -s /bin/sh -c "/home/<user>/GCP/gcp-cups-connector \
-config-filename /home/<user>/GCP/gcp-cups-connector.config.json" gcp