rc-скрипт для camserv

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
densan
ст. сержант
Сообщения: 370
Зарегистрирован: 2007-12-06 10:02:02
Откуда: Penza
Контактная информация:

rc-скрипт для camserv

Непрочитанное сообщение densan » 2012-02-21 13:36:09

Здравствуйте.
Делаю rc-скрипт для camserv - консольная программа для получение изображения с /dev/video и вещание его в сеть по mjpeg. Может использоваться для работы в качестве источника в Zoneminder или удаленного наблюдения в режиме реального времени.

Код: Выделить всё

#!/bin/sh
#
# PROVIDE: camserv
# REQUIRE: DAEMON
#

. /etc/rc.subr

name="camserv"
rcvar=${name}_enable

load_rc_config $name
: ${name}_enable="NO"

start_cmd=camserv_start
stop_cmd=camserv_stop

camserv_start()
{
    echo "Starting camserv"
    export LD_PRELOAD=/usr/local/lib/libv4l/v4l1compat.so
    /usr/local/bin/camserv
}

camserv_stop()
{
    echo "Stopping camserv"
    killall camserv
}

run_rc_command $1
После запуска
/usr/local/etc/rc.d/camserv start
в консоль вываливается информация о старте camserv

Код: Выделить всё

Starting camserv
camserv v0.5.1 - by Jon Travis (jtravis@p00p.org)
Syntax: /usr/local/bin/camserv <cfg file>
Will try /root/.camserv and /usr/local/share/camserv/camserv.cfg
2012-02-21 14:30:19 [main] Trying to read config file "/root/.camserv":
2012-02-21 14:30:19 [main] Error reading config "/root/.camserv": No such file or directory
2012-02-21 14:30:19 [main] Trying to read config file "/usr/local/share/camserv/camserv.cfg":
2012-02-21 14:30:19 [main] Success reading config "/usr/local/share/camserv/camserv.cfg"
2012-02-21 14:30:19 [camconfig] Using default of "2359296" for [main]:shm_alloc
2012-02-21 14:30:19 [mainloop] Setup signals
2012-02-21 14:30:19 [filter] Loading filter [jpg_filter]
2012-02-21 14:30:19 [video_init] image width: default:320 max:640 min:160 config:640 used:640
2012-02-21 14:30:19 [video_init] image height: default:240 max:480 min:120 config:480 used:480
2012-02-21 14:30:19 [camconfig] Using default of "3" for [video_v4l_qcam]:mode
2012-02-21 14:30:19 [camconfig] Using default of "0" for [video_v4l_qcam]:frequency
и консоль не активна. И в ней отображается лог запуска и работы программы.
в процессах висит

Код: Выделить всё

ps -wuax | grep camserv
root       52966   0,0  0,0    496    300   0  R+   14:31      0:00,00 grep camserv
root       52961   0,0  0,1   9924   1864   2  I+   14:30      0:00,01 /bin/sh /usr/local/etc/rc.d/camserv start
root       52963   0,0  0,1  12908   1948   2  I+   14:30      0:00,00 /usr/local/bin/camserv
root       52964   0,0  0,1  78480   1980   2  I+   14:30      0:00,00 /usr/local/bin/camserv
Подскажите как вывести лог апуска и работы программы в отдельный лог файл?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

densan
ст. сержант
Сообщения: 370
Зарегистрирован: 2007-12-06 10:02:02
Откуда: Penza
Контактная информация:

Re: rc-скрипт для camserv

Непрочитанное сообщение densan » 2012-02-21 15:34:10

Изменил в скрипте

Код: Выделить всё

camserv_start()
{
    echo "Starting camserv"
    export LD_PRELOAD=/usr/local/lib/libv4l/v4l1compat.so
    /usr/local/bin/camserv
}
на

Код: Выделить всё

camserv_start()
{
    echo "Starting camserv"
    export LD_PRELOAD=/usr/local/lib/libv4l/v4l1compat.so
    (/usr/local/bin/camserv  2>&1) >  /var/log/camserv.log
}
добился вывод лог файла с консоли в файл, но после старта консоль не активна, и в процессах висит

Код: Выделить всё

root       52961   0,0  0,1   9924   1864   2  I+   14:30      0:00,01 /bin/sh /usr/local/etc/rc.d/camserv start

d.kalinin
рядовой
Сообщения: 20
Зарегистрирован: 2010-07-03 10:02:47

Re: rc-скрипт для camserv

Непрочитанное сообщение d.kalinin » 2012-02-21 16:21:13

а если демоном стартануть?
NAME
daemon — run detached from the controlling terminal

SYNOPSIS
daemon [-cf] [-p pidfile] [-u user] command arguments ...
Заодно будет pid-файл, по которому можно убивать свой процесс