Você não precisa usar cron
para obter um serviço para iniciar uma inicialização.
Tudo que você precisa é isto:
systemctl enable icecast2
Isso será iniciado na inicialização toda vez.
Eu preciso iniciar o serviço icecast2 na inicialização.
Para fazê-lo funcionar na inicialização, adicionei ao crontab (root) a seguinte linha:
@reboot service icecast2 start >/home/pi/logs/icecast2.log 2>&1
após o reinício, o serviço não é executado e recebo este erro:
/bin/sh: 1: service: not found
Então, segui essa resposta em um segmento semelhante e adicionei o caminho completo, conforme sugerido:
@reboot service /usr/bin/icecast2 start >/home/pi/logs/icecast2.log 2>&1
mas agora recebi este erro:
Failed to start usr-bin-icecast2.service.mount: Unit usr-bin-icecast2.service.mount not found.
Notas:
sudo service icecast2 start
, funciona. O programa service
espera que o parâmetro 1 seja um executável no diretório /etc/init.d/
. No arquivo crontab, você especificou o caminho para o executável icecast2.
Você deve ler os sistemas init para o Debian / Unix. AFAIK, Debian usa o sistema padrão systemd
init, que é responsável por iniciar os serviços na inicialização (e muito mais), enquanto service
é agora um script wrapper para systemctl
do systemd, que controla os serviços ( agora chamado Units
) assim:
systemctl start icecast2
Mas service
permanecerá compatível com o antigo sistema init (chamado sysvinit
), portanto, você ainda poderá usar service
em vez de systemctl
.
Iniciar seus serviços / daemons via cron é desencorajado, já que o padrão de fato é definir unidades systemd que ofereçam uma estrutura melhor e mais funcionalidade, ou usando scripts runlevel old-school em /etc/rc.d
que são chamados automaticamente assim que o O kernel atinge um determinado nível de execução ("estado de inicialização").
Faça um favor a si mesmo e pesquise os termos mencionados acima na web, muita diversão pode ser obtida.