Como usar scripts do Upstart no CentOS7?

2

Eu preciso criar um arquivo /etc/init/start_swift.conf com os seguintes comandos:

description "mount swift drives"
start on runlevel [234]
stop on runlevel [0156]
exec /opt/swift/bin/mount_devices

Mas o problema é que eu ainda não tenho o diretório init. Coloquei start_swift.conf em /etc/init.d/ , mas não funciona. Como criar este tipo de arquivos upstart no CentOS7?

    
por Alexandr 16.05.2016 / 10:53

2 respostas

3

Existem duas respostas para esta pergunta.

No CentOS 7 systemd é como você pode executar um serviço ou script no início Você coloca um arquivo .service em / etc / systemd / system, que pode ter esta aparência:

; /etc/systemd/system/swift.service
[Unit]
Description=Swift

[Service]
Type=notify
ExecStart=myscript

[Install]
; Runlevel here: 
WantedBy=multi-user.target

Mas, na verdade, o systemd pode ser usado para montar dispositivos diretamente, se essa for a intenção do seu script.

Para um serviço (não-rpm) você colocaria o arquivo ".mount" em / etc / systemd / system, por exemplo /etc/systemd/system/var-lib-docker.mount. Você também pode querer olhar para as opções de montagem automática do systemd, consulte as referências.

Para carregar os arquivos, use daemon-reload .

; /etc/systemd/system/var-lib-docker.mount
[Unit]
Description="Mount a volume"
Before=network.service

[Mount]
What=/dev/sdb1
Where=/var/lib/docker
;Options=

Há muito que você pode ajustar, consulte:

Referências  - link  - link  - link

    
por 16.05.2016 / 11:21
3

O Centos usa o systemd, não o Upstart. O Systemd é compatível com versões anteriores dos scripts de inicialização do SysV. De acordo com o LSB 3.1, o script de inicialização deve ter Convenções de Comentários informativas, definindo quando o script deve iniciar / parar e o que é necessário para o script iniciar / parar. Eu recomendaria verificar este guia e reescrever seu script inicializado para a unidade systemd.

    
por 16.05.2016 / 11:02