I need to монитор for changes across в folder and its sub-folders and am using Watcher for this purpose. Не issues thus far. However, I want to have the Watcher daemon run on reboot. For staters I tried the following.
/etc/init.d
I created the following простой рукописный шрифт here
#! /bin/bash
watcher.py start
with watcher.py
located in the /usr/local/bin
folder. I then created в symlink from the /etc/rc2.d
folder ln -s /etc/init.d/watcher /etc/rc2.d/S99watcher
and rebooted.
Checking watcher.py status
reported that it was not running. So I modified my init.d
рукописный шрифт схвати follows
#! /bin/bash
/usr/bin/python /usr/local/bin/watcher.py start
and rebooted. This украл watcher.py status
correctly reported Watcher схвати running.
The immediate problem май be solved but I still do not understand why. Why is it that from an интервключил shell prompt I хан simply type watcher.py start
to have the Watcher daemon started whilst at bootup I need to explicitly tell Пайтон to run that рукописный шрифт?
I generally get my shell и startup scripts working by dint of not giving up rather than any in-depth knowledge of how such things work. I hope that someone here will be able to provide в more informed insight.
О нас /etc/profile
:
Поскольку мы можем читать здесь:
...
/etc/profile
файл не очень отличается однако, он используется для установки переменных окружения в масштабе всей системы на пользовательских оболочках. Переменные иногда являются теми же, которые находятся в.bash_profile
, однако этот файл используется для установки начальной буквыPATH
илиPS1
для всех пользователей оболочки системы.
и:
В дополнение к устанавливающим экологическим объектам
/etc/profile
выполнит сценарии в/etc/profile.d/*.sh
Что означает это $PATH
(для всех пользователей), на самом деле установлен сценариями в /etc/profile.d
, поскольку мы можем также завершить здесь.
При изучении моей системы не все точно как описано здесь, но информация подтверждена, тем не менее.
Быстрый (текстовый) поиск в /etc
на строке: /usr/local/bin
, из которых я знаю, что это находится в мой (глобально) $PATH
, производит файл /etc/environment
, который содержит строку:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
Это точно каталоги в моем $PATH
(кроме локальных).
Нижняя строка - это $PATH
не установлен перед сценариями в /etc/init.d
выполняются, но на самом деле устанавливаются сценариями в etc/init.d
Ответ здесь предлагает установить $PATH
переменная наверху сценария. Взгляд (снова) в моей системе, которая является точно, что было, покончил, например, мой /etc/init.d/saned
сценарий:
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
Используя полные пути как Вы сделал будет работать также, конечно.