LINUX.ORG.RU

Lubuntu 16.04 + пакет Ivideon Server (сервис запущен, но видео не передает)

 


0

1

Здравствуйте! Помогите решить проблему. Установил на Lubuntu 16.04 пакет Ivideon Server для видеонаблюдения через вебку. Все работает до момента перезагрузки компьютера. При чем, если зайти в настройки Ivideon Server после перезагрузки ПК, указано что сервер работает и он онлайн. На самом деле видео на сайте Ivideon c этой камеры нет. Если остановить сервер и запустить снова, видео передается и его видно на сайте Ivideon. В настройках сервера указано (стоит галка) что он стартует вместе с ОС. Проверял командой ls /etc/rc.d/ сервис videoserver есть в списке и подсвечен голубеньким цветом, остальные службы зеленым. Смотрел командой systemctl is-enabled videoserver находится ли он в автозапуске. Да он там находится. Но почему после перезапуска ПК не передается видео, не понятно. Ведь данная служба стартует и висит в списке запущенных служб.Помогает только рестарт службы через консоль или открыв приложение и нажав на кнопку Стоп/Старт сервер. Помогите советом, кто знает, что это может быть. Нужно что бы после перезагрузки или выключения/включения компа все запускалось и работало. При чем оно иногда даже работает 1 раз из 10.

P.S. До этого все это дело работало на винде без проблем. Но нужно настроить на Linux.



Последнее исправление: elenix (всего исправлений: 1)
Ответ на: комментарий от symon2014

Спасибо. Если я правильно понял, нужно отключать в самом Ivideon Server галку на автостарт с ОС. Потом делать файл со скриптом, где указывать задержку включения. И прописывать этот файл в автозагрузку. Теперь бы все это правильно сделать, так как я в этом деле нуб. А какой-то программки с графическим интерфейсом скорее всего под это дело не существует.

elenix
() автор топика
Ответ на: комментарий от Twissel

Значит ивидеон системд-хейтеры и не умеют писать юниты.

Deleted
()
Ответ на: комментарий от Deleted

Честно говоря, я не знаю когда он в Ubuntu появился... Я опирался на слова ТС. И пожалуй, я больше бы удивился если, бы systemd там не было.

anymouze ★★
()
Ответ на: комментарий от elenix

Файл вероятно, находится в /lib/systemd/system/ и называется videoserver.service. (варианты возможны) Возможно искать потребуется. В файле прописаны «установки».

По команде systemctl show videoserver покажет «полный» набор «свойств и полей» (больше, чем в файле записано). Если нажать 'S', то можно сохранить в файл (лучше с указанием пути; например, в домашний каталог).

anymouze ★★
()
Ответ на: комментарий от anymouze

Файла я этого нигде не нашел. Unit файла тоже нигде нет. Перерыл все папки связанные с Ivideon. Делал поиск по всем папкам с поиском скрытых файлов. Но команда

systemctl show videoserver
выводит:

Type=forking
Restart=no
NotifyAccess=none
RestartUSec=100ms
TimeoutStartUSec=5min
TimeoutStopUSec=5min
RuntimeMaxUSec=infinity
WatchdogUSec=0
WatchdogTimestamp=Пнд 2019-03-04 17:31:59 EET
WatchdogTimestampMonotonic=22531269
FailureAction=none
PermissionsStartOnly=no
RootDirectoryStartOnly=no
RemainAfterExit=yes
GuessMainPID=no
MainPID=0
ControlPID=0
FileDescriptorStoreMax=0
NFileDescriptorStore=0
StatusErrno=0
Result=success
ExecMainStartTimestampMonotonic=0
ExecMainExitTimestampMonotonic=0

Пока сделал:

#!/bin/bash
sleep 30
systemctl restart videoserver
exit 0
elenix
() автор топика
Ответ на: комментарий от elenix

файл всё равно где-то есть. не налету же он создаётся...

а вот же! точно. по команде systemctl status videoserver «выдаст», где он прячется :)

anymouze ★★
()
Ответ на: комментарий от anymouze

videoserver.service - LSB: video server Loaded: loaded (/etc/init.d/videoserver; bad; vendor preset: enabled) Active: active (running) since Вто 2019-03-05 10:35:31 EET; 1h 23min ago Docs: man:systemd-sysv-generator(8) Process: 586 ExecStart=/etc/init.d/videoserver start (code=exited, status=0/SUCCESS) CGroup: /system.slice/videoserver.service └─744 /usr/bin/pulseaudio --start --log-target=syslog

Мар 05 10:35:30 station1 systemd[1]: Starting LSB: video server... Мар 05 10:35:31 station1 systemd[1]: Started LSB: video server. Мар 05 10:35:34 station1 pulseaudio[744]: [pulseaudio] server-lookup.c: Unable to contact D-Bus: org.freedesktop.DBu Мар 05 10:35:34 station1 pulseaudio[744]: [pulseaudio] main.c: Unable to contact D-Bus: org.freedesktop.DBus.Error.N Мар 05 10:35:34 station1 pulseaudio[744]: [pulseaudio] source.c: Default and alternate sample rates are the same.

А вот содержимое файла videoserver:

#!/bin/sh ### BEGIN INIT INFO # Provides: videoserver # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: video server # Description: ### END INIT INFO

# serverctl.sh wrapper to manage IvideonServer state

# Do NOT «set -e»

# PATH should only include /usr/ if it runs after the mountnfs.sh script PATH=/sbin:/usr/sbin:/bin:/usr/bin DESC=«Video server» NAME=videoserver INSTALL_PATH=$(dirname $(readlink «/etc/init.d/${NAME}»))

# Load the VERBOSE setting and other rcS variables . /lib/init/vars.sh

# Define LSB log_* functions. # Depend on lsb-base (>= 3.2-14) to ensure that this file is present # and status_of_proc is working. . /lib/lsb/init-functions

# # Function that starts the daemon/service # do_start() { «${INSTALL_PATH}/serverctl.sh» start return $? }

# # Function that stops the daemon/service # do_stop() { «${INSTALL_PATH}/serverctl.sh» stop return $? }

# # Function that sends a SIGHUP to the daemon/service # do_reload() { # # If the daemon can reload its configuration without # restarting (for example, when it is sent a SIGHUP), # then implement that here. # # start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME return 0 }

case «$1» in start) [ «$VERBOSE» != no ] && log_daemon_msg «Starting $DESC» «$NAME» do_start case «$?» in 0|1) [ «$VERBOSE» != no ] && log_end_msg 0 ;; 2) [ «$VERBOSE» != no ] && log_end_msg 1 ;; esac ;; stop) [ «$VERBOSE» != no ] && log_daemon_msg «Stopping $DESC» «$NAME» do_stop case «$?» in 0|1) [ «$VERBOSE» != no ] && log_end_msg 0 ;; 2) [ «$VERBOSE» != no ] && log_end_msg 1 ;; esac ;; status) «${INSTALL_PATH}/serverctl.sh» status if [ $? = «0» ] then echo «* Videoserver is running» else echo «* Videoserver is not running» fi ;; #reload|force-reload) # # If do_reload() is not implemented then leave this commented out # and leave 'force-reload' as an alias for 'restart'. # #log_daemon_msg «Reloading $DESC» «$NAME» #do_reload #log_end_msg $? #;; restart|force-reload) # # If the «reload» option is implemented then remove the # 'force-reload' alias # log_daemon_msg «Restarting $DESC» «$NAME» do_stop case «$?» in 0|1) do_start case «$?» in 0) log_end_msg 0 ;; 1) log_end_msg 1 ;; # Old process is still running *) log_end_msg 1 ;; # Failed to start esac ;; *) log_end_msg 1 ;; esac ;; *) echo «Usage: ${0} {start|stop|status|restart|force-reload}» >&2 exit 3 ;; esac

:

elenix
() автор топика
Ответ на: комментарий от elenix

Такой папки system.slice там тоже нет. Походу на лету создается или я тогда вообще ничего не понимаю...(((

elenix
() автор топика
Ответ на: комментарий от elenix

Надо было «положить» между тегами [сode]«выхлоп» команды [/сode] . Выглядело бы как-то так

videoserver.service - LSB: video server
 Loaded: loaded (/etc/init.d/videoserver; bad; vendor preset: enabled)
 Active: active (running) since Вто 2019-03-05 10:35:31 EET; 1h 23min ago
 Docs: man:systemd-sysv-generator(8)
 Process: 586 ExecStart=/etc/init.d/videoserver start (code=exited, status=0/SUCCESS)
 CGroup: /system.slice/videoserver.service
 └─744 /usr/bin/pulseaudio --start --log-target=syslog
А так надо ещё распарсить эту «кашу» :(

на лету создается

Да, конечно на лету --> /etc/init.d/videoserver (запускается как в «old times» :) systemd генерирует юнит по «факту».

Совета не будет (пока?), я сейчас уже «не в форме». Если работает трогать не обязательно надо.

anymouze ★★
()
Ответ на: комментарий от anymouze

Спасибо за участие, сделал я тот скрипт, перезагрузки службы через 30 сек. после включения компа. Только оказалось что служба требует прав SUDO. И скрипт-то работает, только требует ввести пароль))). залез я в файл Sudoers сделал там вроде по инструкции с какого-то форума. В итоге оно выдало ошибку и больше редактировать файл не дает))). Завтра поеду, попробую какой-нибудь другой дистрибутив поставить, может там на автомате все будет запускаться. А нет, дальше буду изучать правильность написания команд в sudoers. В любом случае всем спасибо за помощь, сейчас хоть понятно в каком направлении двигаться.

elenix
() автор топика
Ответ на: комментарий от elenix

Я почти все сделал, но одна проблема с файлом /etc/sudoers Перегружать службу без пароля получается только с такой записью в нем

user ALL = NOPASSWD: ALL
Но это дыра в безопасности. Как мне прописать вместо последнего ALL команду которая у меня в скрипте systemctl restart videoserver.service. Что бы user мог только рестартануть службу. Файл videoserver.service создается на лету, как уже выяснили и как правильно указать не понятно, пробовал по разному, но что-то ничего не выходит. Помогите плиз.

elenix
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.