O serviço Systemd funciona quando iniciado, mas não quando ativado

0

Eu tenho um script bash que detecta quando novos diretórios são criados em / var / log / myhosts /. Quando um novo diretório é criado, ele deve criar um diretório chamado "myfolder" abaixo dele.

/etc/myscript.sh

#!/bin/bash
/usr/bin/inotifywait -m /var/log/myhosts -e create -e moved_to |
    while read path action file; do
        /usr/bin/mkdir -p "/var/log/myhosts/$file/myfolder"
    done

Eu quero executar este script a partir de uma unidade de serviço systemd na inicialização. Eu criei e habilitei a seguinte unidade de serviço systemd:

/etc/systemd/system/myhosts.service

[Unit]
Description=Watches /var/log/myhosts/ for new directories
After=rsyslog.service

[Service]
Type=simple
ExecStart=/etc/myscript.sh

[Install]
WantedBy=multi-user.target

Este script funciona como esperado se eu executar como:

bash /etc/myscript.sh
sh /etc/myscript.sh
cd /etc/ -> ./myscript.sh
systemctl start myhosts.service
crontab -e -> @reboot /etc/myscript.sh -> works after reboot

Se eu ativar a unidade de serviço systemd e reinicializar meu sistema Linux, após a reinicialização systemctl status myhosts.service informar que o serviço está em execução, ps -ef | grep my retornará que há um processo para o script e o script está sendo executado corretamente mas quando eu crio diretórios em /var/log/myhosts/ ele não cria um diretório myfolder dentro deles.

Eu só quero saber por que a abordagem da unidade de serviço systemd não funciona após a reinicialização. O que estou fazendo de errado? Como mencionado acima, a abordagem crontab @reboot /etc/myscript.sh funciona conforme o esperado.

    
por Subzero123 03.04.2018 / 09:30

0 respostas