Executar script após fstab

4

No Ubuntu Linux 16.04.3, como executo um script, dependendo de outro disco rígido sendo montado primeiro, depois do fstab?

Eu tentei:

  • Criando um script de serviço em /etc/init.d, mas o script é executado antes do fstab.
  • Adicionando ao /etc/rc.local, mas mesmo problema.
por charlie 11.09.2017 / 01:18

1 resposta

10

Acredito que você precisará usar o serviço systemd mais recente no Ubuntu 16.04 em vez do /etc/init.d . Aqui você criará um arquivo de serviço para executar seu script após o local-fs.target .

deixe-me apresentar uma amostra de como isso seria feito.

  1. Crie o arquivo service necessário no diretório /etc/systemd/system

  2. O arquivo ficaria assim:

    [Unit]
    Description=Script to run after fstab
    After=local-fs.target
    
    [Service]
    Type=simple        
    ExecStart=/bin/bash -c "/script/to/run.sh"
    
    
    [Install]
    WantedBy=multiuser.target 
    
  3. E, claro, você configurará o serviço com:

    sudo systemctl start <name_of_service>
    sudo systemctl enable <name_of_service>
    

Isso seria como isso poderia ser feito, por favor, eu mesmo não testei, e aqui está um link para a documentação para ajudá-lo. Por favor, veja outras opções disponíveis para os vários campos no arquivo de serviço.

link

link

link

Nota: a opção de montagem noauto fstab é importante aqui consulte

 local-fs-pre.target
                |
                v
       (various mounts and   (various swap   (various cryptsetup
        fsck services...)     devices...)        devices...)       (various low-level   (various low-level
                |                  |                  |             services: udevd,     API VFS mounts:
                v                  v                  v             tmpfiles, random     mqueue, configfs,
         local-fs.target      swap.target     cryptsetup.target    seed, sysctl, ...)      debugfs, ...)
                |                  |                  |                    |                    |
                \__________________|_________________ | ___________________|____________________/
                                                     \|/
                                                      v
                                               sysinit.target
                                                      |
                 ____________________________________/|\________________________________________
                /                  |                  |                    |                    \
                |                  |                  |                    |                    |
                v                  v                  |                    v                    v
            (various           (various               |                (various          rescue.service

                |                  |                  |                                         v
                v                  v                  v                                 emergency.target
            display-        (various system    (various system
        manager.service         services           services)
                |             required for            |
                |            graphical UIs)           v
                |                  |           multi-user.target
                |                  |                  |
                \_________________ | _________________/
                                  \|/
                                   v
                         graphical.target

Examinar o diagrama acima de seus destinos seria local-fs.target ou sysinit.target não totalmente seguro, pois o último abrange todos os sistemas de arquivos. Então você decide sobre a fase em que seu script seria executado para lhe dar o efeito desejado.

    
por George Udosen 11.09.2017 / 02:23

Tags