Running Watcher at startup

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.

1
задан 16 December 2015 в 17:31

1 ответ

Когда $PATH установлен?

О нас /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

Используя полные пути как Вы сделал будет работать также, конечно.

1
ответ дан 7 December 2019 в 16:04

Другие вопросы по тегам:

Похожие вопросы: