Respostas:
No Debian, os scripts de inicialização e desligamento de serviços e aplicativos devem ser colocados /etc/init.d/
.
O Debian fornece um exemplo de script /etc/init.d/skeleton
que você pode modificar a seu gosto para sua aplicação específica.
Depois de instalado, ligue para:
# update-rc.d YOURAPP defaults
Para que o Debian adicione os /etc/rc?.d/
links simbólicos para você.
Se você preferir um menu ou interface gráfica, dê uma olhada no pacote sysv-rc-conf
ou ksysv
.
Você pode chamar seu script em /etc/rc.local , antes da linha que diz exit 0
Quanto ao encerramento do seu aplicativo, sugiro colocar um script em /etc/rc0.d . Você precisa nomeá-lo com K maiúsculo e, em seguida, um número de 2 dígitos que especifica a ordem em que esses scripts são executados e, em seguida, um nome. Ele será chamado com um parâmetro "stop", mas você pode ignorá-lo para um script de parada simples.
Para a inicialização, dê uma olhada nisso .
Para encerrar, crie um link / copie seu script em uma das pastas /etc/rcX.d em que X é o nível de execução em que você deseja que ele seja executado. 0 é o nível de execução de desligamento do Debian, acredito.
O mais fácil é modificar os scripts existentes, funciona no meu sistema, usado para sons :)
/etc/init.d/rc.local
, adicione seu sh no final do arquivo, antes: (ele será executado imediatamente antes do login na "tela")/etc/init.d/halt
, adicione seu sh no início do arquivo, logo após os comentários iniciais (ele será executado antes do comando shutdown real, chamado por este arquivo de script/etc/init.d/reboot
Desde o Debian Jessie, o init
programa antigo foi substituído por systemd
!
Confira você mesmo. Execute: ls -l /sbin/init
e veja o que está apontando. Atualmente, aponta para systemd
( /sbin/init -> /lib/systemd/systemd
), um programa de inicialização mais novo e melhor.
ASSIM, AS ESCOLHAS E OUTRAS RESPOSTAS AQUI ESTÃO ATUALIZADAS !!!
* Embora você ainda possa instalar scripts da maneira antiga com as ferramentas do System-V, não é uma boa idéia de um modo geral.
man systemd.service
diz: *
Se um serviço for solicitado com um determinado nome, mas nenhum arquivo de configuração da unidade for encontrado, o systemd procurará um script de inicialização do SysV com o mesmo nome ... e criará dinamicamente uma unidade de serviço a partir desse script. Isso é útil para compatibilidade com o SysV. Observe que essa compatibilidade é bastante abrangente, mas não 100%.
É mais fácil do que você pensa. (-:
Aqui está o método novo e preferido para instalar programas de inicialização ou desligamento.
Com systemd
você primeiro deseja criar um arquivo de unidade . Um arquivo de unidade é principalmente declarações, não código.
Em seguida, você usará o systemctl
comando para ativar ou iniciar essa unidade.
systemd
faz grande parte do trabalho para você, facilitando, por exemplo, que um programa crítico seja reiniciado automaticamente se travar ou for morto. Além disso, ele desliga o programa onde e quando deveria, por padrão, sem trabalho extra de sua parte.
Comece a aprender systemd
aqui:
De Debian e em outros lugares e etc e etc .
Páginas de manual para começar:
man systemd.unit
- Sobre arquivos de unidades em geral
man systemd.service
- Sobre arquivos de unidades de serviço, por exemplo, daemons e programas de execução única.
man systemctl
- Interface de usuário da linha de comando
man journalctl
- Veja o log do que systemd fez
man systemd
- Sobre o próprio programa init
Há também uma variedade de outros tipos de arquivos de unidades, por exemplo
man systemd.target
- para grupos e destinos sincronizados comuns.
Depois de digerir o básico acima, man -k systemd
procure em outras páginas do manual relacionadas.
Faça o que fizer, no Debian não use nenhum destes :
update-rc.d
- instalar e remover links de script init do estilo System-Vsysv-rc-conf
- Configuração em nível de execução para SysV como links de script initrunlevel
- Imprima o nível de execução SysV anterior e atualBUM
- B oot U p M anager - um editor de nível de execução gráficasystemadm
- Interface gráfica para o gerente de sistema e serviço systemd Esse arquivo de unidade inicia o daemon NoIP.com quando eu inicializo e o encerra quando eu desligo.
Este daemon, de tempos em tempos, envia o meu endereço IP atual para atualizar meu DDNS ( D inâmica DNS ( D OMain N ame S erver)) base de dados do provedor, mantendo assim o meu nome de domínio que aponta no meu computador onde quer que ele viaja para.
Os arquivos desta unidade estão localizados no meu sistema neste arquivo de configurações: /etc/systemd/system/noip2.service
Aqui está o que está no arquivo da unidade:
# Comments can only go at the beginning of the line!
[Unit]
Description=Start the NoIP IP update daemon. This runs every 30 minutes and reports our current IP to NoIP.com to update Love2d.ddns.net.
Documentation=https://no-ip.com/
Documentation=file:///nobak/Installers/NoIP/noip-2.1.9-1/README.FIRST
[Service]
# 'forking' because process returns after starting daemon (traditional unix daemon).
Type=forking
# This program runs and returns, leaving the running daemon
ExecStart=/usr/local/bin/noip2
# Be in no hurry to start this. Max nice is +19.
Nice=15
# If it dies for any reason, then restart it
Restart=always
[Install]
# Installs a hook to use this unit file when the system boots or shuts down
WantedBy=multi-user.target
Execute manualmente um arquivo de unidade (por exemplo, para teste):
$ sudo systemctl start noip2
. $ sudo systemctl restart noip2
. $ sudo systemctl stop noip2
. Configure o sistema para executar automaticamente um arquivo de unidade ao iniciar ou desligar:
$ sudo systemctl enable noip2
. $ sudo systemctl disable noip2
.Visualizar log
$ sudo journalctl -u noip2