Respostas:
A resposta rápida é: Depende do seu init
sistema.
A resposta longa é: Para as versões atuais do Ubuntu, você provavelmente tem uma mistura de Upstart e SystemV . Versões mais recentes do Ubuntu depois do 15.04 "Vivid Vervet" (e outras distribuições Linux como RHEL / CentOS 7) estão mudando para usar o SystemD .
Para listar todos os serviços:
initctl list
Para listar todos os serviços Upstart e executá initctl show-config
-los, esta linha única pode ser útil:
initctl list | awk '{ print $1 }' | xargs -n1 initctl show-config
Para listar todos os serviços:
service --status-all
OU:
# for init scripts:
ls /etc/init.d/
# for runlevel symlinks:
ls /etc/rc*.d/
Para listar todos os serviços:
systemctl list-unit-files --type=service
OU:
ls /lib/systemd/system/*.service /etc/systemd/system/*.service
service --status-all
NÃO mostra se os serviços estão habilitados para iniciar na inicialização, pelo menos não no Ubuntu 16. Mostra se os serviços estão em execução no momento ou não.
sudo service --status-all
começar tudo de serviços para aparecer. Alguns estavam ocultos quando eu corri apenas service --status-all
em uma conta não raiz.
systemctl
, service
, initctl
...), como eles são geralmente considerados comandos de administração do sistema.
Os diretórios /etc/init.d
e /etc/rc.*
foram substituídos pela upstart
ferramenta ' ' init. Embora os scripts nesses diretórios sejam executados conforme o esperado, o novo método para executar coisas no init é definido pelos arquivos em/etc/init/
Você pode listar todos os trabalhos iniciantes consultando upstart pelo dbus:
dbus-send --print-reply --system --dest=com.ubuntu.Upstart \
/com/ubuntu/Upstart com.ubuntu.Upstart0_6.GetAllJobs
Pode ser necessário alterar 0_6
para refletir a versão inicial que você possui. Este comando funciona na minha instalação lúcida.
initctl list
é muito melhor do que este comando dbus. Gostaria de deixar esta resposta aqui para referência (em vez de excluí-la completamente).
Eu usaria initctl show-config <servicename>
para realmente obter os detalhes de quando / se seu serviço iniciará durante a inicialização.
Igual a:
$ initctl show-config myservice
myservice
start on runlevel [2345]
stop on runlevel [!2345]
Ou para o NFS4 idmap-daemon:
$ initctl show-config idmapd
idmapd
start on (local-filesystems or mounting TYPE=nfs4)
stop on runlevel [06]
O chkconfig é preferível apenas nos sistemas baseados no RedHat imho.
Em 12.04, poderíamos usar:
sudo apt-get install chkconfig
chkconfig --list
mas foi removido em 12.10 .
Saída de amostra:
acpi-support 0:off 1:off 2:on 3:on 4:on 5:on 6:off
acpid 0:off 1:off 2:off 3:off 4:off 5:off 6:off
apparmor 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
Para o Ubuntu 18.04, use:
systemctl list-units --type=service
ao invés de :
initctl
A partir do Ubuntu 16.04, initctl
foi substituído por systemd
.
https://www.linuxtricks.fr/wiki/systemd-les-commandes-essentielles (FR_fr)
(Se puder ajudar @ sanjay-manohar)
Além dos serviços e scripts do sistema em:
/etc/init.d/
/ lib / systemd / system /
/ etc / systemd / system /
Provavelmente também existem aplicativos de AutoStart , por exemplo:
find / -name "*autostart*"
ls -1 "/etc/xdg/autostart" "/home/$USER/.config/autostart" "/usr/share/gdm/autostart" "/usr/share/gnome/autostart"
Usando gawk:
ls -l /etc/rc*.d/* | gawk 'match($0, /rc([0-6S]).d.*\/(.*)$/, a) {l[a[2]]=l[a[2]]a[1]","}; END{for(v in l){print v,substr(l[v],1,length(l[v])-1)}}'
Saída de amostra:
$ ls -l /etc/rc*.d/* | gawk 'match($0, /rc([0-6S]).d.*\/(.*)$/, a) {l[a[2]]=l[a[2]]a[1]","}; END{for(v in l){print v,substr(l[v],1,length(l[v])-1)}}' | egrep README
README 0,1,2,3,4,5,6,S