Страница 1 из 1

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

Добавлено: 2012-02-21 13:36:09
densan
Здравствуйте.
Делаю 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
Подскажите как вывести лог апуска и работы программы в отдельный лог файл?

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

Добавлено: 2012-02-21 15:34:10
densan
Изменил в скрипте

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

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

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

Добавлено: 2012-02-21 16:21:13
d.kalinin
а если демоном стартануть?
NAME
daemon — run detached from the controlling terminal

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