[Решено] Автозапуск из init.d от чьего имени?

Автор epros, 23 января 2014, 16:42:10

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

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

epros

Извиняюсь за глупый вопрос... Скрипты из init.d, поставленные в автозагрузку, по умолчанию всегда запускаются от имени root или нужно предпринимать какие-то специальные меры для указания от чьего имени должен запускаться скрипт?

redVi

От чьего имени создавались, тому и должны принадлежать по логике вещей. А чего гадать-то? Посмотрите права на все файлы указанной директории.
Debian Sid, Openbox || Gentoo, Openbox

epros

Вот какое дело. Вроде всё создавалось от root. И демона биткоина я раньше вручную запускал от root. А этот демон создаёт папку со своими данными в home директории пользователя, т.е. в данном случае она создавалась в /root. Но когда я поставил этого демона в автозагрузку, то он после автозапуска почему-то решил по-новой создать папку со своими данными в корне, что неправильно. Так что что-то там не так с параметрами юзера, от которого запускается демон.
Я попробовал в скрипте тупо добавить sudo перед командой запуска демона, после чего система вообще слетела и мне, похоже, теперь придётся всё восстанавливать с нуля...

redVi

Цитата: epros от 23 января 2014, 18:22:35после чего система вообще слетела
Так загрузитесь с LiveCD и уберите то, что добавили.
А как в автозагрузку добавляли, что делали?
Debian Sid, Openbox || Gentoo, Openbox

epros

#4
Цитата: redVi от 23 января 2014, 20:26:50Так загрузитесь с LiveCD и уберите то, что добавили.
Это удалённый арендованный сервер. Я с ним работаю через ssh. Уже перезагрузил систему с сети (с полным форматированием дисков). Однако, настраивать всё придётся заново...

Цитата: redVi от 23 января 2014, 20:26:50А как в автозагрузку добавляли, что делали?
Sh скрипт кладу в /etc/init.d, делаю его исполнимым файлом (владелец - root). Сам скрипт примерно такой:
#!/bin/sh
### BEGIN INIT INFO
# Provides:          bitcoin
# Required-Start:    $local_fs $remote_fs $network $syslog $named $portmap
# Required-Stop:     $local_fs $remote_fs $network $syslog $named $portmap
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start/stop bitcoin daemon
### END INIT INFO

do_start()
{
        bitcoind -daemon
}

do_stop()
{
        bitcoind stop
}

case "$1" in
   start)
        do_start
        exit 0
        ;;
   stop)
        do_stop
        exit 0
        ;;
   *)
        exit 0
        ;;
esac


Потом выполняю update-rc.d bitcoin defaults, после чего в директориях /etc/rc?.d появляются символьные ссылки на этот скрипт. Перезагружаемся...
Однако, что-то этому демону в настройках не нравится: отказывается он запускаться. Проверять запуском вручную от root бесполезно, ибо в таком случае он создаёт домашнюю директорию не в корне, как при автозапуске, а в /root. В чём разница, не пойму.

Сообщение объединено: 23 января 2014, 22:14:40

Короче, не мудрствуя лукаво, я просто записал в скрипте перед командой запуска демона export HOME="/root", и все дела. Теперь что вручную, что автозапуском, демон стартует с одинаковой конфигурацией: с рабочей папкой внутри директории /root.