запуск службы до авторизации пользователя

Автор os_a, 08 декабря 2014, 16:51:47

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

os_a

Приветствую!
Задача - необходим запуск службы до того как пользователь авторизуется (пользователь вообще авторизовываться не будет).
rc.local выполняется после того как пользователь войдет в систему. на skeleton времени не хватает.
Можно как-то, например, для rc.local изменить уровень выполнения(?)?
Выглядит это так - пользователь включает ПК, запускается debian 7.x без X-ов, в момент предложения авторизации  (либо далее в любой удобный момент без авторизации пользователя)  запускается нужная служба.
Основная проблема - завоевать мир, при этом не привлечь внимание санитаров.

yoric

Цитата: os_arc.local выполняется после того как пользователь войдет в систему
Откуда дровишки? rc.local запускается между окончанием загрузки и авторизацией. Но если там что-то тяжёлое, оно может продолжать работать до выхода из системы.

Цитата: os_aВыглядит это так - пользователь включает ПК, запускается debian 7.x без X-ов, в момент предложения авторизации  (либо далее в любой удобный момент без авторизации пользователя)  запускается нужная служба.
cron & tab

os_a

Спасибо, точно ошибался - rc.local запускается там где надо.
Немного усложню вопрос. Служба стартанула как положено до авторизации, однако у пользователя есть возможность её случайно убить сочетанием клавиш. Необходимо проверять - запущена ли служба. Если нет - передергивать службу. Создал скрипт_ик; в крон добавил запускать скрипт каждую минуту. Однако крон при выполнении ругается "No MTA installed, discarding output".
сам скрипт:

#!/bin/bash
if ! ps -A | grep avreg-mon then
   /usr/bin/avreg-mon -f
fi

скрипт запускаю под пользователем - запускается. Почему в кроне нет?
Основная проблема - завоевать мир, при этом не привлечь внимание санитаров.

endru

откуда знаешь что не запускается в кроне?
Цитата: os_a от 11 декабря 2014, 09:43:03No MTA installed, discarding output
это информационное сообщение - не ошибка.
Цитата: os_a от 11 декабря 2014, 09:43:03#!/bin/bash
if ! ps -A | grep avreg-mon then
   /usr/bin/avreg-mon -f
fi
либо ставь ; между grep avreg-mon и then, либо переноси then на новую строку, иначе - ошибка в коде.

os_a

Цитата: endru от 11 декабря 2014, 10:17:13
откуда знаешь что не запускается в кроне?
Скажем так. Задача состоит в следующем: если пользователь закрыл avreg-mon - он (avreg-mon) через минуту сам должен запустился. Вот и все. Это основная на данный момент задача. Скрипт кроном запускается, это вижу в логах, и так же в логах то самое информационное сообщение. погуглив по этому сообщению понимаю что дело в коде в скрипте.
Цитировать
либо ставь ; между grep avreg-mon и then, либо переноси then на новую строку
поставил, не запускается. т.е. я как пользователь отключаю avreg-mon, на мониторе после запуска скрипта он не появляется. а должен.
p.s. avreg-mon - локальный просмотрщик изображения с видео камер.
Основная проблема - завоевать мир, при этом не привлечь внимание санитаров.

vic5710

#5
погуглите autologin
https://wiki.debian.org/ru/Step-by-step
ИМХО правильнее сделать автовход и прописать запуск вашего скрипта в профиль

я делал и так :

nano /etc/inittab

#1:2345:respawn:/sbin/getty 38400 tty1
1:2345:respawn:/sbin/my_script
2:23:respawn:/sbin/getty 38400 tty2

в первой консоли запускается мой скрипт