140 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			140 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | #!/usr/bin/env bash | ||
|  | # | ||
|  | # osync-srv Two way directory sync daemon | ||
|  | # | ||
|  | # chkconfig: - 90 99 | ||
|  | # description: monitors a local directory and syncs to a local or remote \ | ||
|  | #              directory on file changes | ||
|  | # processname: /usr/local/bin/osync.sh | ||
|  | # config: /etc/osync/*.conf | ||
|  | # pidfile: /var/run/osync | ||
|  | 
 | ||
|  | ### BEGIN INIT INFO | ||
|  | # Provides:		osync-target-helper-srv | ||
|  | # Required-Start:	$local_fs $time | ||
|  | # Required-Stop:	$local_fs $time | ||
|  | # Default-Start:	2 3 4 5 | ||
|  | # Default-Stop:		0 1 6 | ||
|  | # Short-Description:	osync-target-helpder daemon | ||
|  | # Description:		Two way directory sync daemon | ||
|  | ### END INIT INFO | ||
|  | 
 | ||
|  | prog=osync | ||
|  | progexec=osync.sh | ||
|  | progpath=/usr/local/bin | ||
|  | confdir=/etc/osync | ||
|  | pidfile=/var/run/$prog-target-helper | ||
|  | SCRIPT_BUILD=2018100101 | ||
|  | 
 | ||
|  | if [ ! -f $progpath/$progexec ] && [ ! -f $progexec ]; then | ||
|  | 	echo "Cannot find $prog executable in $progpath nor in local path." | ||
|  | 	exit 1 | ||
|  | fi | ||
|  | 
 | ||
|  | if [ ! -w $(dirname $pidfile) ]; then | ||
|  | 	pidfile=./$prog | ||
|  | fi | ||
|  | 
 | ||
|  | start() { | ||
|  | 	if ! ls "$confdir/"*.conf > /dev/null 2>&1; then | ||
|  | 		echo "Cannot find any configuration files in $confdir." | ||
|  | 		exit 1 | ||
|  | 	fi | ||
|  | 
 | ||
|  | 	errno=0 | ||
|  | 
 | ||
|  | 	for cfgfile in "$confdir/"*.conf | ||
|  | 	do | ||
|  | 		if [ -f $progpath/$progexec ]; then | ||
|  | 			$progpath/$progexec $cfgfile --on-changes-target --errors-only > /dev/null 2>&1 & | ||
|  | 		else | ||
|  | 			echo "Cannot find $prog executable in $progpath" | ||
|  | 			exit 1 | ||
|  | 		fi | ||
|  | 
 | ||
|  | 		pid=$! | ||
|  | 		retval=$? | ||
|  | 
 | ||
|  | 		if [ $? == 0 ]; then | ||
|  | 			echo $pid > "$pidfile-$(basename $cfgfile)" | ||
|  | 			echo "$prog successfully started for configuration file $cfgfile" | ||
|  | 		else | ||
|  | 			echo "Cannot start $prog for configuration file $cfgfile" | ||
|  | 			errno=1 | ||
|  | 		fi | ||
|  | 	done | ||
|  | 
 | ||
|  | 	exit $errno | ||
|  | } | ||
|  | 
 | ||
|  | stop() { | ||
|  | 	if [ ! -f $pidfile-* ]; then | ||
|  | 		echo "No running $prog instances found." | ||
|  | 		exit 1 | ||
|  | 	fi | ||
|  | 
 | ||
|  | 	for pfile in $pidfile-* | ||
|  | 	do | ||
|  | 		if ps -p$(cat $pfile) > /dev/null 2>&1 | ||
|  | 		then | ||
|  | 			kill -TERM $(cat $pfile) | ||
|  | 			if [ $? == 0 ]; then | ||
|  | 				rm -f $pfile | ||
|  | 				echo "$prog instance $(basename $pfile) stopped." | ||
|  | 			else | ||
|  | 				echo "Cannot stop $prog instance $(basename $pfile)" | ||
|  | 			fi | ||
|  | 		else | ||
|  | 			rm -f $pfile | ||
|  | 			echo "$prog instance $pfile (pid $(cat $pfile)) is dead but pidfile exists." | ||
|  | 		fi | ||
|  | 	done | ||
|  | } | ||
|  | 
 | ||
|  | status() { | ||
|  | 	if [ ! -f $pidfile-* ]; then | ||
|  | 		echo "Cannot find any running $prog instance." | ||
|  | 		exit 1 | ||
|  | 	fi | ||
|  | 
 | ||
|  | 	errno=0 | ||
|  | 
 | ||
|  | 	for pfile in $pidfile-* | ||
|  | 	do | ||
|  | 		if ps -p$(cat $pfile) > /dev/null 2>&1 | ||
|  | 		then | ||
|  | 			echo "$prog instance $(basename $pfile) is running (pid $(cat $pfile))" | ||
|  | 		else | ||
|  | 			echo "$prog instance $pfile (pid $(cat $pfile)) is dead but pidfile exists." | ||
|  | 			errno=1 | ||
|  | 		fi | ||
|  | 	done | ||
|  | 
 | ||
|  | 	exit $errno | ||
|  | } | ||
|  | 
 | ||
|  | case "$1" in | ||
|  | 	start) | ||
|  | 	start | ||
|  | 	;; | ||
|  | 	stop) | ||
|  | 	stop | ||
|  | 	;; | ||
|  | 	restart) | ||
|  | 	stop | ||
|  | 	start | ||
|  | 	;; | ||
|  | 	status) | ||
|  | 	status | ||
|  | 	;; | ||
|  | 	condrestart|try-restart) | ||
|  | 	status || exit 0 | ||
|  | 	restart | ||
|  | 	;; | ||
|  | 	*) | ||
|  | 	echo "Usage: $0 {start|stop|restart|status}" | ||
|  | 	;; | ||
|  | esac | ||
|  | 
 | ||
|  | exit 0 |