Thanks Tom, It is indeed working!!!:)
-Matt
On 2 Nov 2015 at 14:34, Tom Eastep wrote:
> On 11/02/2015 02:09 PM, Tom Eastep wrote:
> > On 11/02/2015 09:27 AM, matt darfeuille wrote:
> >>
> >> With the current code the return value of the function
> >> syslog_circular_buffer is 1 instead of 0!
> >>
> >> It looks like return 0 does not break the loops!
> >>
> >> So what I did:
> >> syslog_circular_buffer() {
> >> local pid
> >> local tty
> >> local flags
> >> local time
> >> local path
> >> local args
> >> local arg
> >>
> >> ps w 2> /dev/null | while read pid tty stat time path args; do
> >> case $path in
> >> syslogd|*/syslogd)
> >> for arg in $args; do
> >> case $arg in
> >> -C*)
> >> return 0
> >> ;;
> >> esac
> >> done
> >> ;;
> >> logd|*/logd)
> >> for arg in $args; do
> >> case $arg in
> >> -S*)
> >> return 0
> >> ;;
> >> *)
> >> return 1
> >> ;;
> >> esac
> >> done
> >> ;;
> >> esac
> >> done
> >>
> >> if [ $? -ne 0 ]; then
> >> return 1
> >> fi
> >> }
> >>
> >> Basicly it needs to break first from the loop and then the function
> >> needs to return 0 if there is a match and 1 if there is no match!
> >>
> >> Hopefully you will understant what I am trying to say!!!:)
> >>
> >
> > I tested the above and if fails to find a running 'syslogd -C16' unless
> > that process is the first process displayed by 'ps -w'. The while loop
> > is running in a sub-shell, so the 'return' just exits that sub-shell.
> >
> > I've gone back to using 'echo':
> >
>
> This also works and is a bit cleaner:
>
> syslog_circular_buffer() {
> local pid
> local tty
> local flags
> local time
> local path
> local args
> local arg
>
> ps w 2> /dev/null | (
> while read pid tty stat time path args; do
> case $path in
> syslogd|*/syslogd)
> for arg in $args; do
> case $arg in
> -C*)
> return 0
> ;;
> esac
> done
> ;;
> logd|*/logd)
> for arg in $args; do
> case $arg in
> -S*)
> return 0
> ;;
> esac
> done
> ;;
> esac
> done
>
> return 1 )
> }
>
> setup_logread() {
> [ -z "$LOGFILE" ] && LOGFILE=/var/log/messages
>
> if syslog_circular_buffer; then
> LOGFILE=logread
> ...
>
> That's what I will release,
>
> -Tom
> --
> Tom Eastep \ When I die, I want to go like my Grandfather who
> Shoreline, \ died peacefully in his sleep. Not screaming like
> Washington, USA \ all of the passengers in his car
> http://shorewall.net \________________________________________________
>
>
------------------------------------------------------------------------------
_______________________________________________
Shorewall-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/shorewall-users