Quando inicializo minha caixa CentOS, o httpd
serviço é iniciado automaticamente. Como faço um serviço personalizado que faz a mesma coisa? Tenho um programa que uso para mineração e não quero precisar executá-lo ./miner
toda vez que inicializo a máquina.
Responder1
Como você está usando o CentOS 7.x, crie uma unidade. vim /usr/lib/systemd/system/miner.service
como root
e coloque o seguinte conteúdo:
[Unit]
Description=miner
[Service]
ExecStart=/path/to/miner
[Install]
WantedBy=multi-user.target
Você pode adicionar opções ExecStop=
e ExecReload=
se houver argumentos específicos usados para fechar ou recarregar serviços.
Depois disso, basta systemctl enable miner.service
fazer com que ele inicie a cada inicialização.
Coisas relacionadas:
Responder2
Dependendo do provedor do programa de mineração, você pode ter o serviço associado já declarado.
No centOS você pode verificar:
# chkconfig --list
e se você vir seu programa, poderá dizer ao sistema para executá-lo automaticamente na inicialização
# chkconfig postgresql on
Se você não encontrar nenhum resultado, você pode criar seu próprio script fictício usando um modelo, por exemplo:
Como crio um serviço para um script de shell para poder iniciá-lo e interrompê-lo como um daemon?
então coloque-o em /etc/init.d/ e chmod +x it
Você deve ser capaz de gerenciar seu aplicativo de mineração como um serviço com todas as vantagens que ele oferece
Responder3
Se você só precisa executar o comando na inicialização, não é realmente necessário tentar criar um serviço real. A coisa mais simples a fazer é acessar . /path/to/miner
/etc/rc.d/rc.local. Este arquivo é um script executado em cada inicialização (e certifique-se de que rc.local seja executável), portanto, seu comando será executado quando o servidor for inicializado.
Se você realmente precisa que ele seja tratado como um serviço, a melhor maneira de fazer isso dependerá se você está usando o CentOS 7 ou 5/6.
editar: esqueci de mencionar, isso será executado como root, então se você precisar que seja executado como um usuário não root, use em vez dissosu - username -c /path/to/miner