У меня есть сценарий, который просто echos текущее время и добавляет вывод в файл. Ниже сценарий удара.
#!/bin/bash
#Filename: /etc/init.d/bootlog
#Bash script to record a timestamp.
echo "Time: `date`" >> /home/foo/Documents/.boot_log
exit
Я хотел запустить этот скрипт каждый раз мой компьютер, загруженный к runlevel 2, таким образом, я поместил вышеупомянутый сценарий в /etc/init.d/
каталог с выполняет разрешение для root
.
$ ls -l /etc/init.d/bootlog
-rwx------ 1 root root 161 Jan 12 11:02 /etc/init.d/bootlog
$
Затем, я добавил необходимую символьную ссылку как ниже.
$ 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
$
После выполнения вышеупомянутых шагов я ожидал, что сценарий будет работать в моей следующей перезагрузке. Однако сценарий НЕ работает во время начальной загрузки. Я вижу это потому что .boot_log
файл не создается.
$ cd /home/foo/Documents/
$ sudo ls -l -a .boot_log
ls: cannot access .boot_log: No such file or directory
$
Есть ли какой-либо шаг, который я пропустил? Или что-нибудь я сделал неправильно?
Да, Вы сделали что-то не так при поиске файла.
, Когда Вы работали cd /home/foo/Documents/
и затем ls -l -a .boot_log
, Вы пытались найти что файл в /home/foo/Documents/
папка.
Однако Ваш сценарий хранит его в Вашем корневом каталоге (/home/foo/
), согласно >> /home/foo/.boot_log
. Попытайтесь работать ls -la .boot_log
в /home/foo/
, и файл должен обнаружиться.