Onde está meu /etc/init.d/skeleton no OpenSuse 12.3?

5

Em uma nova instalação do OpenSuse 12.3, eu quero "daemonizar" um programa. E, em todos os exemplos encontrados na Internet, vejo que preciso criar primeiro um /etc/init.d/myscript com base no /etc/init.d/skeleton ...

Mas não tenho /etc/init.d/skeleton ... Existe outro lugar para este arquivo? Ou talvez eu precise instalar alguma coisa?

O sistema está atualizado, verifiquei primeiro.

Eu sei que posso tentar copiar outro script /etc/init.d existente e modificá-lo, ou criar um novo, mas gostaria de saber se estou fazendo algo errado ou se há outra maneira especial de fazer isso no OpenSuse.

    
por plunkets 01.10.2013 / 20:31

1 resposta

3

Não tenho certeza de onde o arquivo /etc/init.d/skeleton desapareceu, mas espero que essa alteração esteja relacionada à substituição do tradicional SysV init daemon por systemd , já que o OpenSUSE 12. systemd é totalmente compatível com os scripts bem conhecidos, mas Eu preferiria usar o modelo systemd de iniciar serviços.

Na minha opinião, os initscripts tradicionais podem ser complicados e, às vezes, podem requerer um conhecimento mais profundo dos scripts de shell. Por outro lado, systemd "initscript" ou unit arquivo de configuração para um serviço ( man systemd.unit ) é mais fácil de manter, pois possui uma sintaxe simples semelhante a .INI files. Você pode tentar escrever algum arquivo de unidade e ativá-lo, largando o arquivo no diretório /etc/systemd/system . Esse diretório tem precedência mais alta que o diretório padrão /usr/lib/systemd/system . Um exemplo da unidade% daemon sshd segue:

[Unit]
Description=OpenSSH Daemon
After=syslog.target network.target

[Service]
EnvironmentFile=/etc/sysconfig/ssh
ExecStartPre=/usr/sbin/sshd-gen-keys-start
ExecStart=/usr/sbin/sshd -D $SSHD_OPTS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=always

[Install]
WantedBy=multi-user.target

Ou você pode ficar com initscripts "legados" quando estiver usando. Mas você perderá alguns recursos interessantes de systemd como:

  • tempo de inicialização mais rápido, inicialização paralela real de serviços
  • tratamento automático de dependências
  • moitoring de serviços e seu reinício automático dos que falharam
  • e muito mais

Por fim, lembre-se de que se houver uma unidade ( sshd.service ) com o mesmo nome de base como um script de inicialização ( /etc/init.d/sshd ), o script será ignorado e a unidade systemd será preferida e usada.

    
por 01.10.2013 / 23:37