Hogyan tudok linux alatt programot meghívni shell nyelven?
Sziasztok!
Van egy program. Mjpg_streamer és egy külön mappában van. Hogyan tudom shell ben meghívni a mappa tartalmát és indítsa el az általam megadott szempontok alapján.
Van egy konfigurációs fájlom is hozzá, mely maga a funkciók és külön a konfigurációkat tartalmazza.
Ezzel szeretném használni.
#!/bin/sh /etc/rc.common
# Copyright (C) 2009-2012 OpenWrt.org
START=50
SERVICE_DAEMONIZE=1
SERVICE_WRITE_PID=1
PROG=/usr/bin/mjpg_streamer
append_bool() {
local section="$1"
local option="$2"
local value="$3"
local _val
config_get_bool _val "$section" "$option" '0'
[ "$_val" -gt 0 ] && append args "$3"
}
append_string() {
local section="$1"
local option="$2"
local value="$3"
local _val
config_get _val "$section" "$option"
[ -n "$_val" ] && append args "$3$_val"
}
error() {
echo "${initscript}:" "$@" 1>&2
}
section_enabled() {
config_get_bool enabled "$1" 'enabled' 0
[ $enabled -gt 0 ]
}
start_instance() {
local s="$1"
args=""
section_enabled "$s" || return 1
config_get device "$s" 'device'
config_get_bool http_enabled "$s" 'http_enabled' 0
config_get_bool authentication "$s" 'authentication' 0
config_get username "$s" 'username'
config_get password "$s" 'password'
config_get_bool file_enabled "$s" 'file_enabled' 0
config_get folder "$s" 'folder'
[ -c "$device" ] || {
error "device '$device' does not exist"
return 1
}
append_bool "$s" enabled "input_uvc.so "
append_string "$s" device "--device "
append_string "$s" resolution "--resolution "
append_string "$s" fps "--fps "
append_bool "$s" yuv "--yuv"
append_string "$s" quality "--quality "
append_string "$s" minimum_size "--minimum_size "
append_bool "$s" no_dynctrl "--no_dynctrl"
append_string "$s" led "--led "
append_bool "$s" enabled ""
inputargs=$args
args=""
append_bool "$s" http_enabled "output_http.so "
if [ $http_enabled -gt 0 ]; then
append_string "$s" www "--www "
append_string "$s" port "--port "
append_bool "$s" authentication "--credentials $username:$password"
fi
append_bool "$s" http_enabled ""
httpargs=$args
args=""
append_bool "$s" file_enabled "output_file.so "
if [ $file_enabled -gt 0 ]; then
append_string "$s" folder "--folder "
append_bool "$s" mjpeg "--mjpeg"
append_string "$s" delay "--delay "
append_string "$s" ringbuffer "--size "
append_string "$s" exceed "--exceed "
append_string "$s" command "--command "
config_get folder "$s" 'folder'
[ ! -z "$folder" ] && mkdir -p $folder
fi
append_bool "$s" file_enabled ""
service_start $PROG --input "$inputargs" ${httpargs:+--output "$httpargs"} ${args:+--output "$args"}
#service_start /usr/bin/mjpg_streamer --input "input_uvc.so --device /dev/video0 --resolution 640x480 --fps 5" --output "output_http.so --www /www/webcam --port 8080"
#service_start /usr/bin/mjpg_streamer --input "input_uvc.so \
# --device $device --fps $fps --resolution $resolution" \
# --output "output_http.so --www $www --port $port ${username:+-c $username:$password}" \
# ${outputfolder:+--output "output_file.so -f $outputfolder -d $outputdelay $ringbuffer"}
}
stop_instance() {
local s="$1"
section_enabled "$s" || return 1
service_stop /usr/bin/mjpg_streamer
}
start() {
config_load 'mjpg-streamer'
config_foreach start_instance 'mjpg-streamer'
}
stop() {
config_load 'mjpg-streamer'
config_foreach stop_instance 'mjpg-streamer'
}
És maga a konfig tartalma:
config mjpg-streamer 'core'
option device '/dev/video0'
option fps '5'
option enabled '0'
option led 'on'
option http_enabled '1'
option www '/www/webcam'
option port '6400'
option authentication '1'
option username 'root'
option password 'Tap83irodaTomi'
option resolution '1600x1200'
option file_enabled '1'
option command 'parancsfuttatasa'
Bocs, nem rágom át a konfigfájlt, az alapkérdésre válaszolok:
> hogyan tudok linux alatt programot meghívni
Egész egyszerűen "parancsként" odaírod az elérési útját, pl.
program/elérési/útja/program
El fogja indítani a program nevű programot.
Ha esetleg a program saját maga mellett levő más programokat hív, akkor cd-zz be a mappába előtte:
cd program/elérési/útja
program
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!