seb rev 16

A simple way to handle daemons in seb OS (can be changed, as everything else :-)
author Christophe Lincoln <pankso@slitaz.org>
date Tue Mar 07 00:04:40 2017 +0100 (2017-03-07)
parents 8205151e9aff
children a4a124868212
files initfs/etc/daemons/httpd initfs/etc/init.d/rcS tools/sebos
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/initfs/etc/daemons/httpd	Tue Mar 07 00:04:40 2017 +0100
     1.3 @@ -0,0 +1,5 @@
     1.4 +#!/bin/sh
     1.5 +desc="Busybox web server"
     1.6 +start() {
     1.7 +	/usr/sbin/httpd -u 80:80 -r "Seb OS Authentication"
     1.8 +}
     2.1 --- a/initfs/etc/init.d/rcS	Mon Mar 06 21:06:09 2017 +0000
     2.2 +++ b/initfs/etc/init.d/rcS	Tue Mar 07 00:04:40 2017 +0100
     2.3 @@ -24,7 +24,7 @@
     2.4  fi
     2.5  
     2.6  # Parse kernel cmdline options
     2.7 -for opt in $(cat cmdline); do
     2.8 +for opt in $(cat /proc/cmdline); do
     2.9  	case "$opt" in
    2.10  		home=*)
    2.11  			colorize 036 "Mounting sebhome.img on: /home"
     3.1 --- a/tools/sebos	Mon Mar 06 21:06:09 2017 +0000
     3.2 +++ b/tools/sebos	Tue Mar 07 00:04:40 2017 +0100
     3.3 @@ -40,7 +40,6 @@
     3.4    -d  daemon    Run/kill a daemon
     3.5    -p  packages  List installed packages
     3.6    -v  view      File viewer
     3.7 -      doc       Built-in documentation
     3.8  
     3.9  EOT
    3.10  }
    3.11 @@ -94,7 +93,7 @@
    3.12  		12 $width 2>${tmp}
    3.13  	passwd=$(cat $tmp)
    3.14  	[ -z "$passwd" ] && return 0
    3.15 -	echo "root:$passwd" | chpasswd --md5 >/dev/null
    3.16 +	echo "root:$passwd" | chpasswd --md5 2>/dev/null
    3.17  }
    3.18  
    3.19  # Add a new user
    3.20 @@ -131,6 +130,7 @@
    3.21  "root-passwd" "Change root password" \
    3.22  "set-date"    "Set system date from the web" \
    3.23  "packages"    "List installed packages" \
    3.24 +"daemons"    "List installed daemons" \
    3.25  "commands"    "Display sebos commands" \
    3.26  "quit"        "Exit from SliTaz Config" 2>${tmp}
    3.27  
    3.28 @@ -147,6 +147,7 @@
    3.29  		root-passwd) root_passwd ;;
    3.30  		set-date)    clear; set_date; read_on ;;
    3.31  		packages)    clear; ${0} -p; read_on ;;
    3.32 +		daemons)     clear; ${0} -d; read_on ;;
    3.33  		commands)    clear; ${0} help; read_on ;;
    3.34  		quit)        quit ;;
    3.35  	esac
    3.36 @@ -168,23 +169,39 @@
    3.37  			title "SliTaz Embedded OS"
    3.38  			info; footer ;;
    3.39  	
    3.40 -	-d|daemon)
    3.41 -		# Start/stop Busybox httpd server
    3.42 -		#pid=$(ps | grep "httpd" | grep -v "grep" | awk '{print $1}')
    3.43 -		daemon="$2"
    3.44 -		pid=$(pidof $daemon)
    3.45 -		if [ "$pid" != "" ]; then
    3.46 -			echo -n "Starting $daemon daemon..."
    3.47 -			case "$daemon" in
    3.48 -				httpd)
    3.49 -					httpd -u 80:80 -r "Seb OS Authentication" ;;
    3.50 -			esac; status
    3.51 -		else
    3.52 -			echo -n "Stopping $daemon daemon..."
    3.53 -			kill ${pid}; status
    3.54 +	-d|daemon*)
    3.55 +		# Handle daemons
    3.56 +		daemons="daemons"
    3.57 +		if [ ! "$2" ]; then
    3.58 +			title "Installed daemons"
    3.59 +			for d in $(ls $daemons); do
    3.60 +				. ${daemons}/${d}
    3.61 +				echo -n "${d}"; indent 20 "$desc"; unset desc
    3.62 +			done; footer "Use: $(basename $0) -d [daemon] [--start|--kill|--info]"
    3.63 +			exit 0
    3.64 +		fi
    3.65 +		if [ "$kill" ]; then
    3.66 +			pid=$(pidof $2)
    3.67 +			. ${daemons}/${2}
    3.68 +			echo -n "Killing: $desc (pid $pid)"
    3.69 +			kill ${pid} 2>/dev/null; status
    3.70 +		fi
    3.71 +		if [ "$start" ]; then
    3.72 +			. ${daemons}/${2}
    3.73 +			echo -n "Starting: $desc"
    3.74 +			start; status
    3.75 +		fi
    3.76 +		if [ "$info" ]; then
    3.77 +			. ${daemons}/${2}
    3.78 +			pid=$(pidof $2)
    3.79 +			[ ! "$pid" ] && pid="none"
    3.80 +			title "$desc"
    3.81 +			echo "$(colorize 036 Pidof $2:) $pid"
    3.82 +			[ "$pid" != "" ] && ps | grep "$pid" | grep -v "grep" | grep -v "sebos"
    3.83 +			footer
    3.84  		fi ;;
    3.85  	
    3.86 -	-p|packages)
    3.87 +	-p|package*)
    3.88  		title "Installed packages"
    3.89  		IFS="|"
    3.90  		cat /var/lib/packages | while read pkg desc; do