Estoy ejecutando los siguientes comandos en Ubuntu 14.04:
root@ubuntu:~# service rpki-ca restart
stop: Unknown job: rpki-ca
start: Unknown job: rpki-ca
root@ubuntu:~# sudo service rpki-ca restart
rpki-ca stop/waiting
rpki-ca start/running
root@ubuntu:~#
¿Cuál es el efecto del sudo
segundo comando? ¿Por qué necesita root sudo
?
Respuesta1
Ok, busqué esto en Google y encontré esto.respuesta de U&L, comprobando suhistorial de revisionesy siguiendo la fuente citada en elrevisión #1, esto resulta ser unError advenedizo; el problema es que cuando se cambia a la ejecución raíz, su
la $UPSTART_SESSION
variable de entorno se transporta desde el entorno anterior en lugar de configurarse nuevamente.
Después de golpearme mucho la cabeza y buscar en Google, encontré una publicación (https://unix.stackexchange.com/questions/120050/sudo-service-vsftpd-returns-unknown-job-vsftpd) mostrando que
sudo service xxxx start
(o detener, o reiniciar)funciona, mientras
`servicio xxxx inicio (en una sesión su)
No funciona.
Entonces, el culpable fue claramente el entorno: si accedes a la raíz con "su" en lugar de "sudo su" o "su -", "servicio" tampoco funcionará correctamente, ya que "su" transportará la mayor parte de tu entorno de usuario normal. a la sesión raíz.
Después de algunas pruebas, descubrí que la culpable es la variable de entorno UPSTART_SESSION, que viene configurada cuando haces "su", pero no cuando haces "sudo su" o "su -". Aquí hay algunos resultados de las pruebas:
-- No funciona
jsveiga@dell:~$ su Password: root@dell:/home/jsveiga# service smbd restart stop: Unknown job: smbd start: Unknown job: smbd
-- funciona incluso desde una sesión su
root@dell:/home/jsveiga# sudo service smbd restart smbd stop/waiting smbd start/running, process 3823
-- obras
root@dell:/home/jsveiga# exit jsveiga@dell:~$ sudo su root@dell:/home/jsveiga# service smbd restart smbd stop/waiting smbd start/running, process 3862
-- obras
root@dell:/home/jsveiga# exit jsveiga@dell:~$ su - Password: root@dell:~# service smbd restart smbd stop/waiting smbd start/running, process 3905
-- ir a su y luego desarmar el UPSTART_SESSION funciona
root@dell:/home/jsveiga# exit jsveiga@dell:~$ su Password: root@dell:/home/jsveiga# service smbd restart stop: Unknown job: smbd start: Unknown job: smbd root@dell:/home/jsveiga# unset UPSTART_SESSION root@dell:/home/jsveiga# service smbd restart smbd stop/waiting smbd start/running, process 4244
Entonces, los scripts de inicio/parada fallan de alguna manera simplemente por la presencia de la
UPSTART_SESSION
variable de entorno.BR, Joao S Veiga
Para solucionar este problema, simplemente desconfigúrelo $UPSTART_SESSION
:
unset UPSTART_SESSION
o cambiar a root por otros medios, como su -
, sudo su
o sudo -i
.
Respuesta2
En ese contexto, no significa nada y debería eliminarse. Sin especificar ningún otro usuario, sudo
intenta convertirse en root, por lo que si ya es root, eso no es operativo, aparte de crear un proceso adicional (para sudo
sí mismo) que ocupa algunos recursos hasta que finaliza el comando que está ejecutando.