Executando o Fedora 33/34 em várias máquinas. Eu ativei com sucesso, o rc-local.service
que funciona bem. Eu tenho alguns outros scripts que preciso executar /etc/init.d/
e criei arquivos de serviço semelhantes como rc-local.service
, mas não posso habilitá-lo, enquanto o rc-local.service pode ser habilitado/desabilitado/estrelado/parado sem problemas.
Eu sei que tenho uma opção (que uso atualmente) para chamar esses scripts do rc.local
arquivo, mas prefiro chamá-los separadamente como serviço. Então meu arquivo de serviço fica assim:
#cat net-scr1.service
[Unit]
Description=Network check service
ConditionFileIsExecutable=/etc/init.d/net-scr1
After=network.target
[Service]
Type=forking
ExecStart=/etc/init.d/net-scr1 start
TimeoutSec=3
ExecStop=/etc/init.d/net-scr1 stop
RemainAfterExit=yes
GuessMainPID=no
StandardOutput=tty
[Install]
WantedBy=multi-user.target
systemctl enable net-scr1
Synchronizing state of net-scr1.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable net-scr1
service net-scr1 does not support chkconfig
Mudei o script init.d
pensando que talvez o systemd assuma que é um sysv
script antigo, mas nenhuma mudança. O que devo ter no meu script para funcionar corretamente?
Meu script se parece com:
#!/bin/bash
[email protected]
[email protected]
dv0=p1p1
ipdv0=`ifconfig $dv0 | grep "inet " | awk '{print $2}'`
if [ "$1" = "stop" ]; then
cat $msg | mail $EMFR -s "$srv-shut_down-ip-$ipdv0" $eml
fi
if [ "$1" = "start" ]; then
cat $msg | mail $EMFR -s "$srv-booted_up-ip-$ipdv0" $eml
fi
Devo incluir funções do antigo sistema sysv ou algo mais? Obrigado
Veja isso
Eu encontrei uma solução. Eu incluí as seguintes 3 linhas no topo do meu script:
head /etc/init.d/net-scr1
agora
systemctl enable net-scr1
funciona bem