xref: /OK3568_Linux_fs/yocto/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/snort.init (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1#!/bin/sh
2#
3# Snort Startup Script modified for OpenEmbedded
4#
5
6# Script variables
7
8LAN_INTERFACE="$2"
9RETURN_VAL=0
10BINARY=/usr/bin/snort
11PATH=/bin:/usr/bin
12PID=/var/run/snort_${LAN_INTERFACE}_ids.pid
13DEL_PID=$PID
14LOGDIR="/var/log/snort"
15DATE=`/bin/date +%Y%m%d`
16CONFIG_FILE=/etc/snort/snort.conf
17PROG=snort
18USER=root
19GROUP=root
20
21if [ ! -x "$BINARY" ]; then
22    echo "ERROR: $BINARY not found."
23    exit 1
24fi
25
26if [ ! -r "$CONFIG_FILE" ]; then
27    echo "ERROR: $CONFIG_FILE not found."
28    exit 1
29fi
30
31start()
32{
33    [ -n "$LAN_INTERFACE" ] || return 0
34    # Check if log diratory is present. Otherwise, create it.
35    if [ ! -d $LOGDIR/$DATE ]; then
36        mkdir -p $LOGDIR/$DATE
37        /bin/chown -R $USER:$USER $LOGDIR/$DATE
38        /bin/chmod -R 700 $LOGDIR/$DATE
39    fi
40
41    /bin/echo "Starting $PROG: "
42
43    # Snort parameters
44    # -D Run Snort in background (daemon) mode
45    # -i <if> Listen on interface <if>
46    # -u <uname> Run snort uid as <uname> user (or uid)
47    # -g <gname> Run snort uid as <gname> group (or gid)
48    # -c Load configuration file
49    # -N Turn off logging (alerts still work) (removed to enable logging) :)
50    # -l Log to directory
51    # -t Chroots process to directory after initialization
52    # -R <id> Include 'id' in snort_intf<id>.pid file name
53
54    $BINARY -D -i $LAN_INTERFACE -u $USER -g $GROUP -c $CONFIG_FILE -l $LOGDIR/$DATE -t $LOGDIR/$DATE -R _ids
55    /bin/echo "$PROG startup complete."
56    return $RETURN_VAL
57}
58
59stop()
60{
61    if [ -s $PID ]; then
62        /bin/echo "Stopping $PROG with PID `cat $PID`: "
63        kill -TERM `cat $PID` 2>/dev/null
64        RETURN_VAL=$?
65        /bin/echo "$PROG shutdown complete."
66        [ -e $DEL_PID ] && rm -f $DEL_PID
67        [ -e $DEL_PID.lck ] && rm -f $DEL_PID.lck
68    else
69        /bin/echo "ERROR: PID in $PID file not found."
70        RETURN_VAL=1
71    fi
72    return $RETURN_VAL
73}
74
75status()
76{
77    if [ -s $PID ]; then
78        echo "$PROG is running as pid `cat $PID`:"
79    else
80        echo "$PROG is not running."
81    fi
82}
83
84restart()
85{
86    stop
87    start
88    RETURN_VAL=$?
89    return $RETURN_VAL
90}
91
92case "$1" in
93    start)
94        start
95        ;;
96    stop)
97        stop
98        ;;
99    status)
100        status
101        ;;
102    restart|reload)
103        restart
104        ;;
105    *)
106        /bin/echo "Usage: $0 {start|stop|status|restart|reload}"
107        RETURN_VAL=1
108esac
109
110exit $RETURN_VAL
111