Como fazer um serviço que inicia na inicialização no CentOS?

2

Quando inicializo minha caixa do CentOS, o serviço httpd é iniciado automaticamente. Como faço um serviço personalizado que faz a mesma coisa? Eu tenho um programa que eu uso para mineração, e eu não quero precisar executar ./miner toda vez que eu inicializo a máquina.

    
por Rei 31.05.2017 / 19:04

3 respostas

3

Como você está usando o CentOS 7.x, crie uma unidade. vim /usr/lib/systemd/system/miner.service as root e coloque o seguinte conteúdo:

[Unit]
Description=miner

[Service]
ExecStart=/path/to/miner

[Install]
WantedBy=multi-user.target

Você pode adicionar as opções ExecStop= e ExecReload= se houver argumentos específicos usados para fechar ou recarregar serviços.

Depois disso, você só precisa systemctl enable miner.service para começar em cada inicialização.

Itens relacionados:

por 01.06.2017 / 12:40
1

Se você só precisa executar o comando na inicialização, tentar fazer um serviço real não é realmente necessário. O mais simples é descartar . /path/to/miner em /etc/rc.d/rc.local. Este arquivo é um script que é executado em cada inicialização (e garante que o rc.local seja executável), portanto, seu comando será executado quando o servidor for inicializado.

Se você precisar que ele seja realmente tratado como um serviço, a melhor maneira de fazer isso dependerá se você está usando o CentOS 7 ou 5/6.

edite: esqueci de mencionar, isso será executado como root, então se você precisar que ele seja executado como um usuário não-root, use su - username -c /path/to/miner

    
por 31.05.2017 / 20:04
1

Dependendo do fornecedor do programa mineiro, você pode ter o serviço associado já declarado.

No centOS você pode verificar:

# chkconfig --list 

e se você ver o seu programa, você pode dizer ao sistema para executá-lo automaticamente no momento da inicialização

# chkconfig postgresql on

Se você não encontrar nenhum resultado, poderá criar seu próprio script simulado usando um modelo, por exemplo:

How do I create a service for a shell script so I can start and stop it like a daemon?

depois coloque-o em /etc/init.d/ e chmod + x ele

Você deve ser capaz de gerenciar sua aplicação de mineradora como um serviço com todas as vantagens que ela oferece.

    
por 01.06.2017 / 11:56