Zdravim,

potrebuji vytvorit vlastni /usr/local/etc/rc.d script, pro spousteni flow collectoru. Je to soucast monitoringu Cacti. Kolektor je napsany v PHP. Skript musi spoustet a ukoncovat vice php kolektoru/skriptu. Dle nejakych navodu mam funkcni reseni, pri spusteni to ted vypada takto:

57939  -  Is        0:00.00 daemon: Cacti-flow_collector[57940] (daemon)
57940  -  S         0:00.08 /usr/local/bin/php /usr/local/share/cacti/plugins/flowview/service/flow-capture-freebsd 57942  -  S         0:00.13 /usr/local/bin/php -q /usr/local/share/cacti/plugins/flowview/flow_collector.php --listener-id=1

Mam ale problem s tim, ze vsechny procesy jsou spustene jako uzivatel root a to samozrejme nechci. Potrebuji je spustit jako uzivatel apache nebo cacti. Kdyz si ale zkusim s timhle hrat a pridat usera do command_args, tak se mi to cele rozbiji, protoze dany uzivatel nema prava pro zapis pidfile a output_file.

Mozna je moje reseni uplne spatne, ale na jine jsem neprisel. Nenajde se tu nejaka rada?

#!/bin/sh
#
# PROVIDE: cacti_flow_collecotr
# REQUIRE: LOGIN
# KEYWORD: shutdown

# Description:
#    This script runs Cacti flow collector

# How to use:
#    Place this file in /usr/local/etc/rc.d/
#    Add cacti_flow_collector_enable="YES" to /etc/rc.conf
#    Add cacti_flow_collector_args="/usr/local/share/cacti/plugins/flowview/service/flow-capture-freebsd" to /etc/rc.conf

# Freebsd rc library
. /etc/rc.subr

# General Info
name="cacti_flow_collector"            # Safe name of program
program_name="cacti_flow_collector"    # Name of exec
title="Cacti-flow_collector"           # Title to display in top/htop

stop_precmd="${name}_prestop"

cacti_flow_collector_prestop() {
    echo killing listeners
    pkill -f "flow_collector.php --listener-id"
}

# RC.config vars
load_rc_config $name      # Loading rc config vars
: ${cacti_flow_collector_enable="NO"}  # Default: Do not enable Cacti flow collector

rcvar=cacti_flow_collector_enable                   # Enables the rc.conf YES/NO flag pidfile="/var/run/${program_name}.pid" # File that allows the system to keep track of cacti_flow_collector status

# Command Setup
exec_path="/usr/local/bin/php" # Path to the php exec
output_file="/var/log/${program_name}.log" # Path to cacti_flow_collector output file

# Command
command="/usr/sbin/daemon"
command_args="-r -t ${title} -o ${output_file} -P ${pidfile} ${exec_path} ${cacti_flow_collector_args}"

# Loading Config
load_rc_config ${name}
run_rc_command "$1"

Dekuji

Petr Macek


--
FreeBSD mailing list (users-l@freebsd.cz)
http://www.freebsd.cz/listserv/listinfo/users-l

Odpovedet emailem