Script em /etc/init.d/ não roda no Ubuntu 15.10

0

Eu tenho um script que simplesmente ecoa a hora atual e acrescenta a saída a um arquivo. Abaixo está o script bash.

#!/bin/bash
#Filename: /etc/init.d/bootlog
#Bash script to record a timestamp.
echo "Time: 'date'" >> /home/foo/Documents/.boot_log
exit

Eu queria executar este script toda vez que meu computador inicializasse para o nível de execução 2, então coloquei o script acima no diretório /etc/init.d/ com permissão de execução para root .

$ ls -l /etc/init.d/bootlog 
-rwx------ 1 root root 161 Jan 12 11:02 /etc/init.d/bootlog
$

Em seguida, adicionei o link simbólico exigido abaixo.

$ cd /etc/rc2.d/
$ sudo ln -s /etc/init.d/bootlog S06bootlog
$ sudo ls -l /etc/rc2.d/S06bootlog 
lrwxrwxrwx 1 root root 18 Jan 12 12:34 /etc/rc2.d/S06bootlog -> /etc/init.d/bootlog
$ 

Depois de executar as etapas acima, esperava que o script fosse executado na próxima reinicialização. No entanto, o script não está sendo executado durante a inicialização. Eu posso ver isso porque o arquivo .boot_log não é criado.

$ cd /home/foo/Documents/
$ sudo ls -l -a .boot_log
ls: cannot access .boot_log: No such file or directory
$ 

Existe algum passo que eu perdi? Ou qualquer coisa que eu fiz de errado?

    
por sps 12.01.2016 / 18:52

1 resposta

1

Sim, você fez algo errado ao procurar o arquivo.

Quando você executou cd /home/foo/Documents/ e, em seguida, ls -l -a .boot_log , estava tentando encontrar esse arquivo na pasta /home/foo/Documents/ .

No entanto, o seu script está armazenando-o em seu diretório pessoal ( /home/foo/ ), como por >> /home/foo/.boot_log . Tente executar ls -la .boot_log em /home/foo/ e o arquivo deve aparecer.

    
por RPi Awesomeness 12.01.2016 / 18:54