Suponho que você tenha um Raspberry usando raspian, que, até onde eu sei, ainda não foi transferido para o systemd . Nesse caso, a resposta é a seguinte.
EDIT: para systemd (Jessie ou posterior), veja na parte inferior .
Primeiro, você pode determinar qual sistema está sendo executado no momento por meio do comando:
sudo service --status-all
Você receberá uma lista mais ou menos assim:
[ + ] triggerhappy
[ + ] udev
[ ? ] udev-mtab
[ ? ] umountfs
[ ? ] umountnfs.sh
[ ? ] umountroot
[ - ] urandom
[ + ] vsftpd
[ + ] weewx
[ - ] x11-common
Os + 's indicam serviços em execução, as -'s serviços não execução, as ?' S serviços que não permitem o status como um possível comando: eles são principalmente comandos que não precisam de correr o tempo todo, apenas ocasionalmente.
Para voltar à sua pergunta, você precisa entender os níveis de execução no Linux. Os níveis de execução (0-6 + S) identificam quais serviços podem / devem ser executados. Uma sequência de inicialização progride a partir de um nível de execução inicial (especificado em / etc / inittab , no meu Raspberry
# The default runlevel.
id:2:initdefault:
essa linha o identifica como 2 e depois avança para o nível de execução final padrão da sua distribuição (de 2 a 5). Você identifica seu nível de execução atual por meio do comando
# runlevel
N 2
(no meu caso, um servidor sem cabeça). Os outros níveis de execução são (novamente a partir de é / etc / inittab *):
# Runlevel 0 is halt.
# Runlevel 1 is single-user.
# Runlevels 2-5 are multi-user.
# Runlevel 6 is reboot.
O usuário único (1) também é frequentemente identificado como S.
Em uma inicialização normal, você inicia em 2 e avança até 5. Para encontrar os serviços iniciados nessa progressão, emita o comando:
# grep -nrI Default-Start /etc/init.d
umountroot:7:# Default-Start:
checkroot.sh:8:# Default-Start: S
kbd:6:# Default-Start: S
isc-dhcp-server:11:# Default-Start: 2 3 4 5
mountkernfs.sh:7:# Default-Start: S
hostname.sh:7:# Default-Start: S
mountnfs.sh:7:# Default-Start: S
halt:6:# Default-Start:
dphys-swapfile:20:# Default-Start: 2 3 4 5
bootlogs:7:# Default-Start: 1 2 3 4 5
rc.local:6:# Default-Start: 2 3 4 5
hostapd:9:# Default-Start: 2 3 4 5
keyboard-setup:8:# Default-Start: S
lightdm:7:# Default-Start: 2 3 4 5
procps:11:# Default-Start: S
mysql:9:# Default-Start: 2 3 4 5
single:6:# Default-Start: 1
vsftpd:7:# Default-Start: 2 3 4 5
samba:7:# Default-Start: 2 3 4 5
mountall.sh:6:# Default-Start: S
weewx:20:# Default-Start: 2 3 4 5
umountnfs.sh:7:# Default-Start:
triggerhappy:6:# Default-Start: 2 3 4 5
ifplugd:24:# Default-Start: 2 3 4 5
alsa-utils:9:# Default-Start: S
bootmisc.sh:7:# Default-Start: S
sendsigs:6:# Default-Start:
console-setup:7:# Default-Start: S
nfs-common:7:# Default-Start: 2 3 4 5 S
checkroot-bootclean.sh:6:# Default-Start: S
rsyslog:7:# Default-Start: 2 3 4 5
x11-common:7:# Default-Start: S
mountdevsubfs.sh:7:# Default-Start: S
cron:10:# Default-Start: 2 3 4 5
mountnfs-bootclean.sh:6:# Default-Start: S
mountall-bootclean.sh:6:# Default-Start: S
screen-cleanup:11:# Default-Start: S
udev:6:# Default-Start: S
ssh:7:# Default-Start: 2 3 4 5
haveged:8:# Default-Start: 2 3 4 5
hwclock.sh:26:# Default-Start: S
plymouth:9:# Default-Start: 2 3 4 5
motd:7:# Default-Start: 1 2 3 4 5
killprocs:6:# Default-Start: 1
networking:6:# Default-Start: S
fake-hwclock:9:# Default-Start: S
udev-mtab:6:# Default-Start: S
apache2:6:# Default-Start: 2 3 4 5
reboot:6:# Default-Start:
umountfs:6:# Default-Start:
plymouth-log:9:# Default-Start: S
openvpn:11:# Default-Start: 2 3 4 5
kmod:8:# Default-Start: S
ntp:7:# Default-Start: 2 3 4 5
rpcbind:9:# Default-Start: S 2 3 4 5
urandom:6:# Default-Start: S
rmnologin:6:# Default-Start: 2 3 4 5
checkfs.sh:7:# Default-Start: S
sudo:8:# Default-Start: 2 3 4 5
mtab.sh:6:# Default-Start: S
dbus:6:# Default-Start: 2 3 4 5
rsync:8:# Default-Start: 2 3 4 5
Isso imprime a linha que começa com Default-Start em todos os arquivos em /etc/init.d/ , que é onde os arquivos que identificam os vários serviços são mantidos. A linha em questão identifica o nível de execução em que cada serviço deve ser iniciado. Se um serviço é iniciado no nível de execução N, quando o sistema avança para N + 1, ele não precisa ser iniciado novamente, mas, se não encontrar em execução, é iniciado.
Isso fornece uma idéia exata dos diferentes estágios em que os serviços são iniciados. Mas dentro do mesmo nível de execução, as linhas necessárias-Iniciar e deve-Iniciar definir dependências duros e macios para o serviço em questão, ou seja, serviços que deve executar e deve executar antes que o serviço que está sendo examinado. Sem os serviços de início obrigatório, o serviço em questão falhará; sem os serviços de início obrigatório, não haverá falha geral, possivelmente apenas a falta de alguns recursos úteis. O mesmo ocorre na parada com parada obrigatória e parada obrigatória.
SYSTEMD :
O comando para listar todos os serviços é
systemctl list-unit-files
que cuspirá muita informação. Para selecionar todos os serviços ativados , ou seja , aqueles que são iniciados na inicialização, basta preencher o comando acima da seguinte maneira:
systemctl list-unit-files | grep enabled
Prefiro esse comando a systemctl list-units : a diferença é que este exibirá apenas os serviços que seu sistema operacional possui na memória = o sistema operacional julga necessário), enquanto systemctl list-unit-files exibirá todos os serviços instalados, incluindo aqueles que são mascarados ( ou seja, aquelas que são supostamente para nunca mais ser iniciado, nem mesmo manualmente), e aqueles que ele vai não ativar, que são chamados de estáticos . Em outras palavras, o comando que sugeri é mais abrangente do que o que lista apenas os serviços ativos .
NB : systemd é muito diferente dos sistemas init anteriores. Em particular, ele não possui níveis de execução , mas metas . os níveis de execução ainda existem por motivos de compatibilidade e podem ser vistos como destinos específicos listando todos os destinos disponíveis via
systemctl list-unit-files --type=target
enquanto você pode ver sua meta atual por meio de
$ systemctl get-default
graphical.target
Para mais informações, leia a excelente página introdutória da DigitalOcean .
systemd
, mas essa resposta ainda parece funcionar.Para um gerenciamento simples do serviço de inicialização no Raspberry Pi, recomendo a ferramenta
rcconf
. Permite ativar / desativar facilmente os serviços/etc/init.d/
. Você também pode ver se eles estão ativados e serão executados na inicialização.Para instalar a ferramenta
E é muito simples usá-lo com interface do usuário de texto
fonte
rcconf
informa se um serviço está ativado ou não. Editei a resposta para dizer explicitamente que a ferramenta mostra esse tipo específico de informação.Aqui é onde você insere arquivos ou comandos em lote para executar na inicialização. Eu executo automaticamente o Openvpn na inicialização também :)
fonte