o que você quer dizer com ativado? Você quer dizer serviços em execução?
Gen
7
A @Gen habilitar um serviço é bem diferente de iniciá-lo. Veja man systemctl.
285
Fascinante. A resposta com classificação mais baixa é a resposta mais "correta", mesmo que claramente não seja a melhor resposta. Esta excelente pergunta (e suas respostas) é um exemplo interessante de como o systemd viola os princípios de design de longa data (e brilhantes) da Unix & Co. @FelipeAlvarez reclama que a resposta mais aceita assume que systemd segue a filosofia do design unix, mas systemd / systemctl pode fazer exatamente o que ele quer (os usuários mais experientes considerarão esse inchaço completo). Começo a ver mais claramente por que Linus Torvalds é tão veementemente crítico do systemd.
BISI
Respostas:
411
systemctl list-unit-files | grep enabledlistará todos os habilitados .
Se você deseja quais estão em execução no momento , é necessário systemctl | grep running.
Use o que você está procurando. Habilitado, não significa que está em execução. E correr não significa que está ativado. São duas coisas diferentes.
Ativado significa que o sistema executará o serviço na próxima inicialização. Portanto, se você habilitar um serviço, ainda precisará iniciá-lo manualmente ou reiniciar e ele será iniciado.
Executar significa que está realmente em execução no momento, mas se não estiver ativado, não será reiniciado quando você reiniciar.
irritante ter que usar uma ferramenta externa (grep) para mostrar essas informações vitais. Mas obrigado por nos mostrar o caminho :)
Felipe Alvarez
34
@FelipeAlvarez Correto. Mas é assim que o Linux funciona. Muitos binários pequenos que funcionam bem entre si. systemctl faz o que é pedido, lista serviços. Não há nenhum comando de filtragem embutido no systemctl porque o grep já existe e pode fazer isso bem com a saída de qualquer programa. É como sempre foi :) #
Dorian
3
Eu concordo e assim deve ser. Mas, o systemd já tenta fazer tanto que me pergunto por que não pode listar serviços ativados?
Felipe Alvarez
5
systemctl | grep runningnão liste nada para mim! Mesmo se algo está funcionando só é listado como por seu status como:enabled, disabled, masked, static
Cirelli94
27
Mais simples:systemctl list-unit-files --state=running
Será
93
man systemctl afirma:
--state=
O argumento deve ser uma lista separada por vírgulas de unidade LOAD, SUBou ACTIVEestados. Ao listar unidades, mostre apenas aquelas nos estados especificados. Use --state=failedpara mostrar apenas unidades com falha.
Explicação:
LOAD: Reflete se a definição da unidade foi carregada corretamente. ACTIVE: O estado de ativação da unidade de alto nível, ou seja, generalização de SUB. SUB: O estado de ativação da unidade de baixo nível, os valores dependem do tipo de unidade.
Embora você também possa usar isso para mostrar apenas enabledunidades com:
systemctl list-unit-files --state=enabled
Se for uma unidade, enabledsignifica que o sistema a iniciará na inicialização. Embora definir algo como enabledrealmente não o faça start, você precisará fazer isso manualmente ou reiniciar o sistema depois de configurá-lo enabled.
man systemctl
.Respostas:
systemctl list-unit-files | grep enabled
listará todos os habilitados .Se você deseja quais estão em execução no momento , é necessário
systemctl | grep running
.Use o que você está procurando. Habilitado, não significa que está em execução. E correr não significa que está ativado. São duas coisas diferentes.
Ativado significa que o sistema executará o serviço na próxima inicialização. Portanto, se você habilitar um serviço, ainda precisará iniciá-lo manualmente ou reiniciar e ele será iniciado.
Executar significa que está realmente em execução no momento, mas se não estiver ativado, não será reiniciado quando você reiniciar.
fonte
systemctl | grep running
não liste nada para mim! Mesmo se algo está funcionando só é listado como por seu status como:enabled, disabled, masked, static
systemctl list-unit-files --state=running
man systemctl
afirma:Explicação:
LOAD
: Reflete se a definição da unidade foi carregada corretamente.ACTIVE
: O estado de ativação da unidade de alto nível, ou seja, generalização deSUB
.SUB
: O estado de ativação da unidade de baixo nível, os valores dependem do tipo de unidade.Embora você também possa usar isso para mostrar apenas
enabled
unidades com:Se for uma unidade,
enabled
significa que o sistema a iniciará na inicialização. Embora definir algo comoenabled
realmente não o façastart
, você precisará fazer isso manualmente ou reiniciar o sistema depois de configurá-loenabled
.fonte
systemctl enable --now ...
--state=enabled
não tem efeito na versão systemd 215 (no Raspbian 8 Jessie), mas funciona na versão 229 systemd (no Ubuntu 16.04.03 Xenial).Para listar todos os
systemd
serviços que estãostate=active
esub=running
Para listar todos os
systemd
serviços que estão dentrostate=active
e abaixo, executando ou saindofonte
Para ver os serviços 'ativados', incluindo os que ainda estão em execução inicial / inicial:
Para ver todos os serviços atualmente em execução, execute:
fonte
sshd
contrassh
esyslog
contrarsyslog
.Também visão geral de todos os serviços ativos e com falha:
fonte