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

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

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

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

O sistema está atualizado, verifiquei isso primeiro.

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

Responder1

Não tenho certeza de onde o /etc/init.d/skeletonarquivo desapareceu, mas espero que essa mudança esteja relacionada à substituição do tradicional SysV init daemondesde systemdo OpenSUSE 12. systemdé totalmente compatível com initscripts bem conhecidos, mas eu preferiria usar o systemdmodelo de inicialização de serviços.

Na minha opinião, os initscripts tradicionais podem ser complicados e, às vezes, podem exigir um conhecimento mais profundo de scripts de shell. Por outro lado, systemd"initscript" ou unitarquivo de configuração de um serviço ( man systemd.unit) é mais fácil de manter, pois possui sintaxe simples, semelhante a .INIarquivos. Você pode tentar escrever algum arquivo de unidade e habilitá-lo soltando o arquivo no /etc/systemd/systemdiretório. Este diretório tem precedência mais alta que o diretório padrão /usr/lib/systemd/system. Segue um exemplo de sshdunidade daemon:

[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 os scripts "legados" à medida que são usados. Mas você perderá alguns recursos interessantes systemdcomo:

  • tempo de inicialização mais rápido, inicialização paralela real de serviços
  • tratamento automático de dependências
  • monitoramento de serviços e reinicialização automática dos serviços travados
  • e muito mais

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

informação relacionada