Script para executar no desligamento

2

Estou tentando criar o equivalente a rc.local que é executado por último durante a inicialização, mas a ser executado primeiro durante o desligamento.

Eu basicamente copio / colado /etc/init.d/rc.local como o modelo base e atualizo o cabeçalho para ser

#! /bin/sh
### BEGIN INIT INFO
# Provides:          rc.shutdown
# Required-Start:
# Required-Stop:     $all
# Default-Start:
# Default-Stop:      0
# Short-Description: Executes rc.shutdown if exists
# Description:
### END INIT INFO

No entanto, quando executo update-rc.d rc.shutdown enable , obtenho

update-rc.d: error: rc.shutdown Default-Start contains no runlevels, aborting.

Este é um script de desligamento e, portanto, não teria início padrão. Curiosamente, o arquivo /etc/init.d/halt tem o mesmo arquivo de cabeçalho, mas parece não haver problema algum.

Estou usando o Debian 8.1

    
por Kousha 16.09.2015 / 19:29

1 resposta

0

Considerando que você está no 8.1, você pode usar o systemd para obter o que deseja aqui (sem ter certeza de que é aceitável para você, mas ele faria o trabalho).

Aqui está um exemplo de um arquivo de unidade que irá executar o que você quiser no desligamento, antes que o material normal de desligamento seja executado:

[Unit]
Description=Run first at shutdown
DefaultDependencies=no
Before=shutdown.target halt.target


[Service]
ExecStart=/usr/local/bin/runme
Type=oneshot

Você pode colocar esse arquivo em /etc/systemd/system/runme.service e ativá-lo usando systemctl enable /etc/systemd/system/runme.service . Ele será executado automaticamente antes de um desligamento ou parada.

    
por 16.09.2015 / 23:31