forked from ungleich-public/cdist
		
	[explorer/init] Linux is a mess...
This commit is contained in:
		
					parent
					
						
							
								de1a421b68
							
						
					
				
			
			
				commit
				
					
						4fe2dcba89
					
				
			
		
					 1 changed files with 39 additions and 5 deletions
				
			
		|  | @ -25,14 +25,48 @@ | |||
| 
 | ||||
| case $(uname -s) in | ||||
|     Linux) | ||||
|         if command -v pgrep >/dev/null | ||||
|         if test -d /proc/1/ | ||||
|         then | ||||
|             # BusyBox's version of ps does not support some options. | ||||
|             # On Linux systems, we prefer pgrep to get the name of PID1. | ||||
|             (pgrep -P0 -l | awk '/^1[ \t]/ {print $2;}') || true | ||||
|             comm_name=$(cat /proc/1/comm) | ||||
|         else | ||||
|             ps -o comm= -p 1 2>/dev/null || cat /proc/1/comm | ||||
|             # BusyBox's versions of ps and pgrep do not support some options | ||||
|             # depending on which compile-time options have been used. | ||||
|             # Both pgrep and ps are tried to get the command name | ||||
|             comm_name=$( | ||||
|                 pgrep -P0 -l 2>/dev/null | awk '/^1[ \t]/ { print $2 }' | ||||
|                 || ps -o comm= -p 1 2>/dev/null) | ||||
|         fi | ||||
| 
 | ||||
|         case $comm_name | ||||
|         in | ||||
|             systemd) | ||||
|                 echo systemd | ||||
|             ;; | ||||
|             init) | ||||
|                 # It could be anything... | ||||
| 
 | ||||
|                 if test -h /proc/1/exe | ||||
|                 then | ||||
|                     init_exe=/proc/1/exe | ||||
|                 else | ||||
|                     init_exe=$(command -v "$comm_name") | ||||
|                 fi | ||||
| 
 | ||||
|                 test -x "$comm_exe" || exit 1 | ||||
| 
 | ||||
|                 case $("$comm_exe" --version | head -n 1) | ||||
|                 in | ||||
|                     *SysV*) | ||||
|                         echo init | ||||
|                     ;; | ||||
|                     *upstart*) | ||||
|                         echo upstart | ||||
|                     ;; | ||||
|                     *) | ||||
|                         echo "" | ||||
|                     ;; | ||||
|                 esac | ||||
|         esac | ||||
|     ;; | ||||
|     FreeBSD|OpenBSD) | ||||
|         ps -o comm= -p 1 2>/dev/null || true | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue