bitrixbiz |
|
Темы:
26
Сообщения:
165
Участник с: 29 апреля 2016
|
Здравствуйте! Делал бездисковую станцию по статье https://habrahabr.ru/post/253573/ Выполнил pacman -S tftp-hpa затем mkdir -p /etc/systemd/system/tftpd.service.d && echo -e '[Service]\nExecStart=\nExecStart=/usr/bin/in.tftpd -s /srv/nfs/diskless/boot' > /etc/systemd/system/tftpd.service.d/directory.conf но systemctl start tftpd.socket tftpd.service выдаёт следующее: journalctl -xe
Смущает строка Завершена остановка юнита tftpd.socket. Как разобраться, кто виноват и что делать? . . . ////// заменил цитирование на cоde. vadik//// |
bitrixbiz |
|
Темы:
26
Сообщения:
165
Участник с: 29 апреля 2016
|
Собственно кто виноват я понял, проблема в этой строке: ExecStart=/usr/bin/in.tftpd -s /srv/nfs/diskless/boot из файла /etc/systemd/system/tftpd.service.d В чём может быть проблема? Есть идеи? |
bitrixbiz |
|
Темы:
26
Сообщения:
165
Участник с: 29 апреля 2016
|
И что я тут сам себе по ходу пишу. Или ошибся веткой и к новичкам надо было валить? Заработало пока так: в файле /etc/systemd/system/tftpd.service.d прописано как в оригинальном файле ExecStart=/usr/bin/in.tftpd --listen $TFTPD_ARGSвместо ExecStart=/usr/bin/in.tftpd -s /srv/nfs/diskless/boot в /etc/conf.d/tftpd соответственно прописаны параметры с путём на загружаемую систему TFTPD_ARGS="--secure /srv/nfs/diskless/boot/" вот тогда только загружается командой systemctl start tftpd.socket tftpd.service почему не работает строка ExecStart=/usr/bin/in.tftpd -s /srv/nfs/diskless/boot непонятно |
kurych |
|
Темы:
0
Сообщения:
1394
Участник с: 06 ноября 2011
|
Во-первых, необязательно городить огород через создание дополнительных файлов типа .../tftpd.service.d/directory.conf. Путь к нужной директории можно просто указать в /etc/conf.d/tftpd. (Ну это, как говорится, на вкус и цвет...) А по сути: попробуйте запустить эту команду "/usr/bin/in.tftpd -s /srv/nfs/diskless/boot" ручками в терминале, вот и увидите, что не так. |
bitrixbiz |
|
Темы:
26
Сообщения:
165
Участник с: 29 апреля 2016
|
Спасибо большое за ответ. Раз уж взялся городить, так хоть теперь разобраться, доски кривые или руки, научиться городить в конце концов :) Строку я пробовал запускать, но ничего не увидел. /usr/bin/in.tftpd -s /srv/nfs/diskless/boot Команда запустилась, моргает курсор, при нажатии на клавиатуру возвращается командная строка. В запущенных процессах его нет. Полагаю, что ждёт посылки из stdin и выходит получив код с клавиатуры. Я если честно не понимаю что происходит в этот момент, если не указан параметр -l Предполагаю, что без этого параметра -l (с ним сервер запускается в standalone mode) в команде systemctl start tftpd.socket tftpd.service менеджер systemd должен связать эти два сервиса чтобы данные сокета через stdin передавались в in.tftpd Грубо говоря, старт через systemctl без параметра -l делается чтобы служба не висела постоянно в памяти, а работала только тогда, когда есть поступающие данные через socket. Верно ли предположение? Что может мешать запуститься через socket? Почему возникает recvfrom: Socket operation on non-socket ? В какой лог залезть чтобы это увидеть? Проблема с сокетом? UPD/ вот картинка strace /usr/bin/in.tftpd -s /srv/nfs/diskless/boot когда происходит ожидание:
Файла /var/run/nscd/socket действительно нет Это что же, получается что все проблемы от того, что DNS на машине не поднят? Или его должен создавать tftpd.socket? . . . ////// заменил цитирование на cоde. vadik//// |
kurych |
|
Темы:
0
Сообщения:
1394
Участник с: 06 ноября 2011
|
А сеть в это время уже поднята? |
vasek |
|
Темы:
47
Сообщения:
11741
Участник с: 17 февраля 2013
|
bitrixbiz bitrixbizПрошу не пинать, но попробую немного уточнить в части возвращаемого значения вызова connect (errno=ENOENT) … - я бы не сказал, что это ошибка и на дальнейший процесс это не влияет..... Когда то трейсил libreoffice -writer на предмет долгого открытия, так вот там то же имеются такие строчки connect(3, {sa_family=AF_LOCAL, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory) но на работу это не влияет …. nscd это демон кэширования службы имён …. и к нему частенько все лезет … и, кстати, он по дефолту не запущен …. $ systemctl is-enabled nscd disabled Насчет возвращаемого значения вызова setsockopt … errno=ENOTSOCK (Socket operation on non-socket).....согласно описания означает - Аргумент s -- это файл, а не сокет ..... С этим вызовом практически не знаком и что в действительности это означает, ничего существенного сказать не могу …. но процесс то на этом не остановился, пошел дальше и затыка не видно... PS ... еще один момент — connect, вернувший значение 0, связан с дескриптором 3, …. connect, вернувший значение -1, связан с дескриптором 4, и эти вызовы к решаемой задаче вроде бы прямого отношения не имеют ..…. а вот socket и connect, имеющие отношение к реальной задаче в логе не вижу … или они были выше или ниже ….... или их нет вообще... или я ошибаюсь ???...
Ошибки не исчезают с опытом - они просто умнеют
|
kurych |
|
Темы:
0
Сообщения:
1394
Участник с: 06 ноября 2011
|
То, что на команду из консоли ничего не выдает - хорошо. Теперь покажите, что говорит "systemctl cat tftpd.service". |
bitrixbiz |
|
Темы:
26
Сообщения:
165
Участник с: 29 апреля 2016
|
Добрый день!kurych
а вот strace /usr/bin/in.tftpd -s /srv/nfs/diskless/boot при выполненном systemctl start tftpd.socket
разницы не вижу никакой, что делаешь перед этим systemctl start tftpd.socket или systemctl stop tftpd.socket Кстати: .. . ////// заменил цитирование на cоde. vadik//// |
bitrixbiz |
|
Темы:
26
Сообщения:
165
Участник с: 29 апреля 2016
|
запустил nscd, ошибка connect(4, {sa_family=AF_LOCAL, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory) пропала а остальное тоже самое. .. . ////// заменил цитирование на cоde. vadik//// |