Longa execução do script udev no Ubuntu 16.04

4

No Ubuntu 14.04 eu tenho um longo script de execução com uma regra do udev simples que funciona perfeitamente assim:

ACTION=="change", SUBSYSTEM=="block", RUN+="/opt/script.sh"

No Ubuntu 16.04 as coisas não estão indo tão bem. O script começa a ser executado, mas depois é morto antes de ser concluído. Eu então tentei mudar minha regra do udev para chamar um script warapper que iria separar o script. Eu tentei:

#!/bin/sh
nohup /opt/script.sh  &

Então eu tentei:

#!/bin/sh
/opt/script.sh | at now

Sem sucesso.

Eu então tentei criar um serviço systemd ...

ACTION=="change", SUBSYSTEM=="block", ENV{SYSTEMD_WANTS}=="justrunthescript.service"

/etc/systemd/system/justrunthescript.service

[Unit]
Description=Just run the script

[Service]
ExecStart=/opt/script.sh

Que eu comecei a executar o script em algum momento, mas meu script se baseia em parâmetros do udev como $ ID_FS_TYPE que não são passados dessa maneira.

Acho que o que eu quero é bem simples, basta inserir um disco e executar meu script a partir de uma regra do udev e não matar o script. Qual é a melhor maneira de fazer isso?

    
por Benjamin Bryan 30.07.2016 / 06:31

1 resposta

3

Realizei que precisava fazer:

 #!/bin/sh
 echo /opt/script.sh | at now
    
por Benjamin Bryan 31.07.2016 / 04:07