forked from linuxer/Runit-Service-Manager
		
	Compare commits
	
		
			12 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 0477798c9e | |||
| 750cde1aa1 | |||
| 16f8b86d1b | |||
| 3bd632a39b | |||
| b17e0376bc | |||
| 250654bfdb | |||
| edbabda2df | |||
| 9d13a0576b | |||
| 27bcdec74f | |||
| 6815946574 | |||
| f4e12ec2e1 | |||
| 533d0e6250 | 
| @@ -1,11 +1,10 @@ | |||||||
| # `rsm` - Runit Service Manager | # `rsm` - Runit Service Manager | ||||||
| =================================== |  | ||||||
|  |  | ||||||
| - This is the CLI Runit Service Manager {rsm}, forked from Void Service Manager {vsv}  https://github.com/bahamas10/vsv/blob/master/vsv | - This is the CLI Runit Service Manager {rsm}, forked from Void Service Manager {vsv}  https://github.com/bahamas10/vsv/blob/master/vsv | ||||||
|  |  | ||||||
| - Terminal Commands are exactly the same as sv, but produces a beautified layout. | - Terminal Commands are exactly the same as sv, but produces a beautified layout. | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| ## Manage and view runit services. | ## Manage and view runit services. | ||||||
|  |  | ||||||
| @@ -18,10 +17,12 @@ Quick Examples: | |||||||
| - `rsm status` - same as above | - `rsm status` - same as above | ||||||
| - `rsm stop <svc>` - stop a service | - `rsm stop <svc>` - stop a service | ||||||
| - `rsm start <svc>` - start a service | - `rsm start <svc>` - start a service | ||||||
| - `rsm restart <svc>` - restart a service | - `rsm restart <svc>` - restart a service, or start service right after `rsm enable <svc>` | ||||||
| - `rsm enable <svc>` - enable a service (autostart at boot) | - `rsm enable <svc>` - enable a service (autostart at boot) | ||||||
| - `rsm disable <svc>` - disable a service (no autostart at boot) | - `rsm disable <svc>` - disable a service (no autostart at boot) | ||||||
| - `rsm hup <svc>` - refresh a service (`SIGHUP`) | - `rsm hup <svc>` - refresh a service (`SIGHUP`) | ||||||
|  | - `rsm logs <svc>` or `rsm alllogs <svc>` - lists all logs for a service (access and error) | ||||||
|  | - `rsm errorlogs <svc>` - lists all error logs for a service | ||||||
|  |  | ||||||
| Status: | Status: | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										121
									
								
								rsm
									
									
									
									
									
								
							
							
						
						
									
										121
									
								
								rsm
									
									
									
									
									
								
							| @@ -1,14 +1,21 @@ | |||||||
| #!/usr/bin/env bash | #!/usr/bin/env bash | ||||||
| # | # | ||||||
| # Void Linux service manager (runit) | # Artix Linux service manager (runit) | ||||||
|  | # Forked and further developed, by: linuxer <linuxer@artixlinux.org>  | ||||||
|  | # Fork Date: August 15, 2020 as rsv | ||||||
|  | # Renamed and further developed as rsm from: January 10, 2021   | ||||||
| # | # | ||||||
| # Author: Dave Eddy <dave@daveeddy.com> | # Original Author (vsv): Dave Eddy <dave@daveeddy.com> | ||||||
| # Date: August 29, 2018 | # Date: August 29, 2018 | ||||||
| # License: MIT | # License: MIT | ||||||
|  |  | ||||||
| RSM_VERSION='v1.3.7' | RSM_VERSION='v1.4.2' | ||||||
|  |  | ||||||
| export SVDIR=${SVDIR:-/run/runit/service/} | export SVDIR=${SVDIR:-/run/runit/service/} | ||||||
|  | export LOGDIR="/var/log/" | ||||||
|  | export RSVDIR="/run/runit/service/" | ||||||
|  | export FLDIR=${FLDIR:-/etc/runit/sv/} | ||||||
|  |  | ||||||
|  |  | ||||||
| charup='✔' | charup='✔' | ||||||
| chardown='X' | chardown='X' | ||||||
| @@ -116,13 +123,14 @@ usage() { | |||||||
|  |  | ||||||
| 	cat <<EOF | 	cat <<EOF | ||||||
| $colormagenta ______   ____  __  __ | $colormagenta ______   ____  __  __ | ||||||
| $colormagenta | | \ \ / ___\ | \/ |  $colorgreen Runit Service Manager ($RSM_VERSION) | $colormagenta | | \ \ / ___\ | \/ |  $colorgreen Runit Service Manager for Artix Linux ($RSM_VERSION) | ||||||
| $colormagenta | |_/ / \____  | || |  $colorgreen Source: https://gitea.artixlinux.org/linuxer/Runit-Service-Manager | $colormagenta | |_/ / \____  | || |  $colorgreen Source: https://gitea.artixlinux.org/linuxer/Runit-Service-Manager | ||||||
| $colormagenta | | \ \ \____/ | || |  $colorgreen MIT License | $colormagenta | | \ \ \____/ | || |  $colorgreen MIT License | ||||||
|  |  | ||||||
| $logo   $colorblue Manage and view runit services | $logo   $colorblue Manage and view runit services | ||||||
| $logo   $colorblue Made specifically for Void Linux but should work anywhere | $logo   $colorblue Made specifically for Void Linux but should work anywhere | ||||||
| $logo   $colorblue Author: Dave Eddy <dave@daveeddy.com> (bahamas10) | $logo   $colorblue Author: Dave Eddy <dave@daveeddy.com> (bahamas10) | ||||||
|  | $logo   $colorblue Forked specifically for Artix Linux and renamed to rsm, for further development | ||||||
|  |  | ||||||
| ${coloryellow}USAGE:${colorgreen} | ${coloryellow}USAGE:${colorgreen} | ||||||
| $progname [OPTIONS] [SUBCOMMAND] [<ARGS>] | $progname [OPTIONS] [SUBCOMMAND] [<ARGS>] | ||||||
| @@ -160,6 +168,10 @@ ${colorgreen}start <service>          $cr Start the service | |||||||
| ${colorgreen}stop <service>           $cr Stop the service | ${colorgreen}stop <service>           $cr Stop the service | ||||||
| ${colorgreen}restart <service>        $cr Restart the service | ${colorgreen}restart <service>        $cr Restart the service | ||||||
| ${colorgreen}reload <service>         $cr Reload the service (send SIGHUP) | ${colorgreen}reload <service>         $cr Reload the service (send SIGHUP) | ||||||
|  | ${colorgreen}logs <service>           $cr Outputs the service's logfilenames and their access & error logs from /var/log/<serice>/ | ||||||
|  | ${colorgreen}alllogs <service>        $cr The same like logs <service> | ||||||
|  | ${colorgreen}errorlogs <service>      $cr Outputs the service's logfilenames and their errorlogs from /var/log/<serice>/ | ||||||
|  |  | ||||||
|  |  | ||||||
| ${coloryellow}EXAMPLES:${colorgreen} | ${coloryellow}EXAMPLES:${colorgreen} | ||||||
| ${colorgreen}$progname                      $cr Show service status in /var/service | ${colorgreen}$progname                      $cr Show service status in /var/service | ||||||
| @@ -449,7 +461,7 @@ do_enable_disable() { | |||||||
| 		fi | 		fi | ||||||
|  |  | ||||||
| 		# ensure service exists | 		# ensure service exists | ||||||
| 		if ! [[ -d $svc ]]; then | 		if ! [[ -d ${FLDIR}${svc} ]]; then | ||||||
| 			rmsg -1 "service directory '$svc' does not exist" >&2 | 			rmsg -1 "service directory '$svc' does not exist" >&2 | ||||||
| 			continue | 			continue | ||||||
| 		fi | 		fi | ||||||
| @@ -462,6 +474,8 @@ do_enable_disable() { | |||||||
| 				if ! rm -f "$file"; then | 				if ! rm -f "$file"; then | ||||||
| 					rmsg 1 "failed to enable '$svc'" | 					rmsg 1 "failed to enable '$svc'" | ||||||
| 					ret=1 | 					ret=1 | ||||||
|  | 				else | ||||||
|  | 					ln -s ${FLDIR}${svc} ${SVDIR} | ||||||
| 				fi | 				fi | ||||||
| 				;; | 				;; | ||||||
| 			disable) | 			disable) | ||||||
| @@ -469,6 +483,8 @@ do_enable_disable() { | |||||||
| 				if ! disable_message "$svc" > "$file"; then | 				if ! disable_message "$svc" > "$file"; then | ||||||
| 					rmsg 1 "failed to disable '$svc'" | 					rmsg 1 "failed to disable '$svc'" | ||||||
| 					ret=1 | 					ret=1 | ||||||
|  | 				else | ||||||
|  | 					unlink ${SVDIR}${svc}  | ||||||
| 				fi | 				fi | ||||||
| 				;; | 				;; | ||||||
| 			*) | 			*) | ||||||
| @@ -482,6 +498,89 @@ do_enable_disable() { | |||||||
| 	return "$ret" | 	return "$ret" | ||||||
| } | } | ||||||
|  |  | ||||||
|  | # show logs | ||||||
|  | do_show_logs() { | ||||||
|  | 	monitors_array=($(xrandr -q)) | ||||||
|  | 	local cmd=$1 | ||||||
|  | 	local svc | ||||||
|  | 	local ret=0 | ||||||
|  | 	local file | ||||||
|  | 	shift | ||||||
|  |  | ||||||
|  | 	# Loop all arguments as services | ||||||
|  | 	msg "Running $progname $cmd $*" | ||||||
|  |  | ||||||
|  | 	for svc in "$@"; do | ||||||
|  | 		# Validate service name | ||||||
|  | 		if ! [[ $svc =~ $svc_re ]]; then | ||||||
|  | 			rmsg -1 "unexpected characters in name: '$svc'" >&2 | ||||||
|  | 			continue | ||||||
|  | 		fi | ||||||
|  | 	done | ||||||
|  | 	 | ||||||
|  | 	if ! [[ -d ${RSVDIR}${cmd} ]]; then | ||||||
|  | 	    printf "\n%20s\n" "${colorgreen}The following log files found:"     | ||||||
|  | 	    local logs_files_array=($(ls /var/log/$cmd/*.*)) | ||||||
|  | 	    printf "\n$colorblue" | ||||||
|  | 	    printf '%s\n' "${logs_files_array[@]}"  | ||||||
|  | 	     | ||||||
|  | 	    printf "\n$colormagenta" | ||||||
|  | 	    read -n 1 -s -r -p "Press any key to continue" | ||||||
|  | 	     | ||||||
|  | 	    printf "\n" | ||||||
|  | 	    printf "\n${colorcyan}Log files full output:\n" | ||||||
|  | 	    printf "${coloryellow}\n" | ||||||
|  | 	    printf "${coloryellow}${opt}" | ||||||
|  | 	     | ||||||
|  | 		tail -n 10  ${LOGDIR}${cmd}/*.* | more  | ||||||
|  | 		printf "\n" | ||||||
|  | 	fi | ||||||
|  | 	 | ||||||
|  | 	rmsg "$ret" "[$progname $cmd $*], exit code: $ret" | ||||||
|  | 	return "$ret" | ||||||
|  | } | ||||||
|  |  | ||||||
|  | # show error logs | ||||||
|  | do_show_err_logs() { | ||||||
|  | 	local cmd=$1 | ||||||
|  | 	local svc | ||||||
|  | 	local ret=0 | ||||||
|  | 	local file | ||||||
|  | 	shift | ||||||
|  |  | ||||||
|  | 	# Loop all arguments as services | ||||||
|  | 	msg "Running $progname $cmd $*" | ||||||
|  |  | ||||||
|  | 	for svc in "$@"; do | ||||||
|  | 		# Validate service name | ||||||
|  | 		if ! [[ $svc =~ $svc_re ]]; then | ||||||
|  | 			rmsg -1 "unexpected characters in name: '$svc'" >&2 | ||||||
|  | 			continue | ||||||
|  | 		fi | ||||||
|  | 	done | ||||||
|  | 	 | ||||||
|  | 	if ! [[ -d ${RSVDIR}${cmd} ]]; then | ||||||
|  | 	    printf "\n%20s\n" "${colorred}The following error log files found:"     | ||||||
|  | 	    local logs_files_array=($(ls /var/log/$cmd/*error*.*)) | ||||||
|  | 	    printf "\n$colorblue" | ||||||
|  | 	    printf '%s\n' "${logs_files_array[@]}"  | ||||||
|  | 	     | ||||||
|  | 	    printf "\n$colormagenta" | ||||||
|  | 	    read -n 1 -s -r -p "Press any key to continue" | ||||||
|  | 	     | ||||||
|  | 	    printf "\n" | ||||||
|  | 	    printf "\n${colorcyan}Log files full output:\n" | ||||||
|  | 	    printf "${coloryellow}\n" | ||||||
|  | 	    printf "${coloryellow}${opt}" | ||||||
|  | 	     | ||||||
|  | 		tail -n 10  ${LOGDIR}${cmd}/*error*.* | more  | ||||||
|  | 		printf "\n" | ||||||
|  | 	fi | ||||||
|  | 	 | ||||||
|  | 	rmsg "$ret" "[$progname $cmd $*], exit code: $ret" | ||||||
|  | 	return "$ret" | ||||||
|  | } | ||||||
|  |  | ||||||
| # handle any other subcommand | # handle any other subcommand | ||||||
| do_sv_cmd() { | do_sv_cmd() { | ||||||
| 	if (($# < 2)); then | 	if (($# < 2)); then | ||||||
| @@ -500,7 +599,7 @@ colors_set=false | |||||||
| tree=false | tree=false | ||||||
| log=false | log=false | ||||||
| do_usage=-1 | do_usage=-1 | ||||||
| verbosity=0 | verbosity=1 | ||||||
| while getopts 'c:d:hltuvV' option; do | while getopts 'c:d:hltuvV' option; do | ||||||
| 	case "$option" in | 	case "$option" in | ||||||
| 		c) setcolors "$OPTARG"; colors_set=true;; | 		c) setcolors "$OPTARG"; colors_set=true;; | ||||||
| @@ -540,6 +639,16 @@ case "$cmd" in | |||||||
| 	enable|disable) | 	enable|disable) | ||||||
| 		do_enable_disable "$cmd" "$@" | 		do_enable_disable "$cmd" "$@" | ||||||
| 		;; | 		;; | ||||||
|  | 	logs) | ||||||
|  | 		do_show_logs "$@"  | ||||||
|  | 		;;  | ||||||
|  | 	alllogs) | ||||||
|  | 		do_show_logs "$@"  | ||||||
|  | 		;;		 | ||||||
|  | 	errorlogs) | ||||||
|  | 		do_show_err_logs "$@"  | ||||||
|  | 		;;  | ||||||
|  |  | ||||||
| 	*) | 	*) | ||||||
| 		if $tree; then | 		if $tree; then | ||||||
| 			rmsg -1 "-t can only be specified with 'status'" | 			rmsg -1 "-t can only be specified with 'status'" | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user