Compare commits
	
		
			24 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 002e25a74a | ||
|   | 2ac620cf53 | ||
|   | e9fb5f81cc | ||
|   | 67dfdec43f | ||
|   | fa88750060 | ||
|   | 223550f676 | ||
|   | d6295768ea | ||
|   | 7a15323822 | ||
|   | edb07278af | ||
|   | d07d896aa8 | ||
|   | 80955a691b | ||
|   | 2413f487e2 | ||
|   | 32a8a202d0 | ||
|   | 803ed1badd | ||
|   | 8a6f9d943b | ||
|   | ee8c0c1cc1 | ||
|   | f61e44d110 | ||
|   | 55ceac775c | ||
|   | 7b07c55c86 | ||
|   | 793673df3c | ||
|   | 6219d87071 | ||
|   | 72b5c74290 | ||
|   | aad77d0267 | ||
|   | 99565e359f | 
| @@ -19,8 +19,8 @@ addons: | ||||
| notifications: | ||||
|   irc: | ||||
|     channels: | ||||
|       - "irc.freenode.org#openrc" | ||||
|     on_success: change  # options: [always|never|change] default: always | ||||
|       - "irc.libera.chat#openrc" | ||||
|     on_success: always  # options: [always|never|change] default: always | ||||
|     on_failure: always  # options: [always|never|change] default: always | ||||
|     on_start: false     # default: false | ||||
|  | ||||
|   | ||||
							
								
								
									
										360
									
								
								ChangeLog
									
									
									
									
									
								
							
							
						
						
									
										360
									
								
								ChangeLog
									
									
									
									
									
								
							| @@ -1,3 +1,227 @@ | ||||
| commit 2ac620cf53fbbd201927055b771d59f16086ddc4 | ||||
| Author: William Hubbs <w.d.hubbs@gmail.com> | ||||
| Commit: William Hubbs <w.d.hubbs@gmail.com> | ||||
|  | ||||
|     update travis ci irc notifications | ||||
|      | ||||
|     - move to libera network | ||||
|     - always notify on successful build | ||||
|  | ||||
| commit e9fb5f81cc862001bcc10a4ce0f18a7cd6cd6df3 | ||||
| Author: William Hubbs <w.d.hubbs@gmail.com> | ||||
| Commit: William Hubbs <w.d.hubbs@gmail.com> | ||||
|  | ||||
|     man/supervise-daemon.8: document --pidfile option | ||||
|  | ||||
| commit 67dfdec43ffe9160f4d63394c6334fc10c6992c8 | ||||
| Author: Sven Wegener <sven.wegener@stealer.net> | ||||
| Commit: William Hubbs <w.d.hubbs@gmail.com> | ||||
|  | ||||
|     on_ac_power: support multiple power_supply devices in sysfs | ||||
|      | ||||
|     Newer devices have multiple power_supply devices in sysfs: | ||||
|      | ||||
|     $ grep ^ /sys/class/power_supply/*/type | ||||
|     /sys/class/power_supply/AC/type:Mains | ||||
|     /sys/class/power_supply/BAT0/type:Battery | ||||
|     /sys/class/power_supply/ucsi-source-psy-USBC000:001/type:USB | ||||
|     /sys/class/power_supply/ucsi-source-psy-USBC000:002/type:USB | ||||
|      | ||||
|     There are two "USB" Type-C ports than can supply power and both are | ||||
|     aggregated into the "Mains" power supply by the firmware. The "Battery" | ||||
|     also counts as a power supply, but is missing the online attribute. | ||||
|      | ||||
|     The -f check with a wildcard pattern results in an error, when multiple | ||||
|     devices are present: | ||||
|      | ||||
|     /lib/rc/bin/on_ac_power: line 21: [: too many arguments | ||||
|      | ||||
|     When the power_supply class is registered, check for a "Mains" device. | ||||
|      | ||||
|     Fixes #427. | ||||
|  | ||||
| commit fa88750060effe4a23a14d7e70517e475fd11b39 | ||||
| Author: Alex Xu <351006+Hello71@users.noreply.github.com> | ||||
| Commit: William Hubbs <w.d.hubbs@gmail.com> | ||||
|  | ||||
|     conf.d/hostname: clarify hostname variable usage | ||||
|      | ||||
|     https://gitlab.alpinelinux.org/alpine/aports/-/issues/9744 | ||||
|      | ||||
|     This fixes #433. | ||||
|  | ||||
| commit 223550f6765a89254f978c2007612e5be7d308a6 | ||||
| Author: William Hubbs <w.d.hubbs@gmail.com> | ||||
| Commit: William Hubbs <w.d.hubbs@gmail.com> | ||||
|  | ||||
|     Revert "openrc-init: ignore an empty string in argv[1]" | ||||
|      | ||||
|     This reverts commit 7a1532382284d9d3d0f1e31d89ff1ca0d3199cb5. | ||||
|         This check is no longer needed since rc_runlevel_exists() is fixed. | ||||
|      | ||||
|             X-Gentoo-Bug: 803536 | ||||
|             X-Gentoo-Bug-URL: https://bugs.gentoo.org/803536 | ||||
|             Closes: https://github.com/OpenRC/openrc/pull/431 | ||||
|  | ||||
| commit d6295768eaa886d7cf296e5d7f94711ec1f08038 | ||||
| Author: William Hubbs <w.d.hubbs@gmail.com> | ||||
| Commit: William Hubbs <w.d.hubbs@gmail.com> | ||||
|  | ||||
|     librc: fix rc_runlevel_exists return for empty string | ||||
|      | ||||
|     This function should return false if the runlevel is an empty string. | ||||
|      | ||||
|         X-Gentoo-Bug: 803536 | ||||
|         X-Gentoo-Bug-URL: https://bugs.gentoo.org/803536 | ||||
|         Closes: https://github.com/OpenRC/openrc/pull/431 | ||||
|  | ||||
| commit 7a1532382284d9d3d0f1e31d89ff1ca0d3199cb5 | ||||
| Author: Mike Gilbert <floppym@gentoo.org> | ||||
| Commit: William Hubbs <w.d.hubbs@gmail.com> | ||||
|  | ||||
|     openrc-init: ignore an empty string in argv[1] | ||||
|      | ||||
|     X-Gentoo-Bug: 803536 | ||||
|     X-Gentoo-Bug-URL: https://bugs.gentoo.org/803536 | ||||
|     Closes: https://github.com/OpenRC/openrc/pull/431 | ||||
|  | ||||
| commit edb07278af2f5e05873da99d4a80bfbb6f08812b | ||||
| Author: William Hubbs <w.d.hubbs@gmail.com> | ||||
| Commit: William Hubbs <w.d.hubbs@gmail.com> | ||||
|  | ||||
|     sh/rc-cgroup.sh: fix case in starting message | ||||
|      | ||||
|     X-Gentoo-Bug: 804193 | ||||
|     X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=804193 | ||||
|  | ||||
| commit d07d896aa82a789c558876ee3257b785df1e7946 | ||||
| Author: William Hubbs <w.d.hubbs@gmail.com> | ||||
| Commit: William Hubbs <w.d.hubbs@gmail.com> | ||||
|  | ||||
|     sh/rc-cgroup.sh: fix cgroup_cleanup | ||||
|      | ||||
|     X-Gentoo-Bug: 804193 | ||||
|     X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=804193 | ||||
|  | ||||
| commit 80955a691bfb151b92d04c12b5d138bafdedf532 | ||||
| Author: William Hubbs <w.d.hubbs@gmail.com> | ||||
| Commit: William Hubbs <w.d.hubbs@gmail.com> | ||||
|  | ||||
|     version 0.43.4 | ||||
|  | ||||
| commit 2413f487e2d556a657bca8c873828873c650f995 | ||||
| Author: William Hubbs <w.d.hubbs@gmail.com> | ||||
| Commit: William Hubbs <w.d.hubbs@gmail.com> | ||||
|  | ||||
|     update ChangeLog | ||||
|  | ||||
| commit 32a8a202d0728e3e550050069da3e27de2d98d7f | ||||
| Author: William Hubbs <w.d.hubbs@gmail.com> | ||||
| Commit: William Hubbs <w.d.hubbs@gmail.com> | ||||
|  | ||||
|     move the irc channel to the libera network | ||||
|  | ||||
| commit 803ed1badddb3edfc78f4346d8d059253a334cd9 | ||||
| Author: Lars Wendler <polynomial-c@gentoo.org> | ||||
| Commit: William Hubbs <w.d.hubbs@gmail.com> | ||||
|  | ||||
|     init.d/modules.in: Avoid loading modules twice in Linux with dash shell | ||||
|      | ||||
|     Since commit 6b475ab26992f1dd8815700828df46abc4b71d27, openrc tries to load | ||||
|     modules twice which have been defined in /etc/conf.d/modules via modules= | ||||
|     variable when /bin/sh points to dash shell. | ||||
|     The reason is that when the "modules-load" service was merged into "modules" | ||||
|     service, the "modules" variable name got used in both, load_modules() | ||||
|     function and in Linux_modules() function which both get called when modules | ||||
|     service is started. Although "modules" variable is marked as local in | ||||
|     load_modules(), dash simply ignores this. | ||||
|      | ||||
|     Avoid the issue by renaming "modules" variable to "_modules" in | ||||
|     load_modules() function. | ||||
|      | ||||
|     This fixes #419. | ||||
|  | ||||
| commit 8a6f9d943bf7256630a37ea9e3a8421e079f05b9 | ||||
| Author: William Hubbs <w.d.hubbs@gmail.com> | ||||
| Commit: William Hubbs <w.d.hubbs@gmail.com> | ||||
|  | ||||
|     README: convert references to markdown links | ||||
|  | ||||
| commit ee8c0c1cc1edb4959845e5bc487ce6e83ad9f2b3 | ||||
| Author: William Hubbs <w.d.hubbs@gmail.com> | ||||
| Commit: William Hubbs <w.d.hubbs@gmail.com> | ||||
|  | ||||
|     version 0.43.3 | ||||
|  | ||||
| commit f61e44d110d3ceb96c06bf7dbdd07b8ab85166e3 | ||||
| Author: William Hubbs <w.d.hubbs@gmail.com> | ||||
| Commit: William Hubbs <w.d.hubbs@gmail.com> | ||||
|  | ||||
|     update ChangeLog | ||||
|  | ||||
| commit 55ceac775c388191090fe37aef489d721ee9299d | ||||
| Author: William Hubbs <w.d.hubbs@gmail.com> | ||||
| Commit: William Hubbs <w.d.hubbs@gmail.com> | ||||
|  | ||||
|     checkpath: fix code to walk the directory path | ||||
|      | ||||
|     X-Gentoo-Bug: 782808 | ||||
|     X-Gentoo-Bug-URL: https://bugs.gentoo.org/782808 | ||||
|  | ||||
| commit 7b07c55c86cf356a832fe2975c9f8e164bcb2b7b | ||||
| Author: William Hubbs <w.d.hubbs@gmail.com> | ||||
| Commit: William Hubbs <w.d.hubbs@gmail.com> | ||||
|  | ||||
|     version 0.43.2 | ||||
|  | ||||
| commit 793673df3ca3ad8692e135bd5c77b21bae3ebbe2 | ||||
| Author: William Hubbs <w.d.hubbs@gmail.com> | ||||
| Commit: William Hubbs <w.d.hubbs@gmail.com> | ||||
|  | ||||
|     update ChangeLog | ||||
|  | ||||
| commit 6219d87071d07acf4d6b3e99ec58134acf129d8e | ||||
| Author: William Hubbs <w.d.hubbs@gmail.com> | ||||
| Commit: William Hubbs <w.d.hubbs@gmail.com> | ||||
|  | ||||
|     checkpath: remove extra slashes from paths | ||||
|      | ||||
|     This fixes #418. | ||||
|  | ||||
| commit 72b5c7429011e0d20c450fe06dc4b645e36eecb0 | ||||
| Author: William Hubbs <w.d.hubbs@gmail.com> | ||||
| Commit: William Hubbs <w.d.hubbs@gmail.com> | ||||
|  | ||||
|     version 0.43.1 | ||||
|  | ||||
| commit aad77d0267426edef6a568e26c9bae11c2367db4 | ||||
| Author: William Hubbs <w.d.hubbs@gmail.com> | ||||
| Commit: William Hubbs <w.d.hubbs@gmail.com> | ||||
|  | ||||
|     update ChangeLog | ||||
|  | ||||
| commit 99565e359f3081e053573d10756e1a756c56342b | ||||
| Author: William Hubbs <w.d.hubbs@gmail.com> | ||||
| Commit: William Hubbs <w.d.hubbs@gmail.com> | ||||
|  | ||||
|     cgroup2_set_limits: fix harmless error message | ||||
|      | ||||
|     In legacy cgroups mode, we were running `mountinfo -q ""` which was | ||||
|     generating an error message. If we return immediately when | ||||
|     cgroup2_find_path returns an empty value, we avoid this message. | ||||
|  | ||||
| commit ee05403c501b5f0c0a955b1f8d67b2d88f0ede7a | ||||
| Author: William Hubbs <w.d.hubbs@gmail.com> | ||||
| Commit: William Hubbs <w.d.hubbs@gmail.com> | ||||
|  | ||||
|     version 0.43 | ||||
|  | ||||
| commit c1558abb0f1e0fe2d1a2c42a536de335a1cd8de9 | ||||
| Author: William Hubbs <w.d.hubbs@gmail.com> | ||||
| Commit: William Hubbs <w.d.hubbs@gmail.com> | ||||
|  | ||||
|     update ChangeLog | ||||
|  | ||||
| commit 901b752463eb37784fcebe5a3b5648b4bfbd9371 | ||||
| Author: William Hubbs <w.d.hubbs@gmail.com> | ||||
| Commit: William Hubbs <w.d.hubbs@gmail.com> | ||||
| @@ -401,139 +625,3 @@ Author: William Hubbs <w.d.hubbs@gmail.com> | ||||
| Commit: William Hubbs <w.d.hubbs@gmail.com> | ||||
|  | ||||
|     supervise-daemon: only log debug logs when verbose mode is active | ||||
|  | ||||
| commit fbec1eed51c85c53b39f97a213479caa0a2b75ab | ||||
| Author: Manuel Rüger <manuel@rueg.eu> | ||||
| Commit: Manuel Rüger <manuel@rueg.eu> | ||||
|  | ||||
|     .cirrus.yml: Update FreeBSD releases | ||||
|      | ||||
|     Signed-off-by: Manuel Rüger <manuel@rueg.eu> | ||||
|  | ||||
| commit 229692cc3424e95d8185e6c681b76c0dc88899f9 | ||||
| Author: Austin English <austinenglish@gmail.com> | ||||
| Commit: Mike Frysinger <vapier@gmail.com> | ||||
|  | ||||
|     man/openrc-run.8: fix a typo | ||||
|  | ||||
| commit 375ef42393f3dc6edbaa2cb70c79b2366072db38 | ||||
| Author: Sergei Trofimovich <slyfox@gentoo.org> | ||||
| Commit: William Hubbs <w.d.hubbs@gmail.com> | ||||
|  | ||||
|     src/rc/rc-logger.h: fix build failure against gcc-10 | ||||
|      | ||||
|     On gcc-10 (and gcc-9 -fno-common) build fails as: | ||||
|      | ||||
|     ``` | ||||
|     cc  -L../librc -L../libeinfo -O2 -g -std=c99 -Wall -Wextra -Wimplicit -Wshadow \ | ||||
|       -Wformat=2 -Wmissing-prototypes -Wmissing-declarations -Wmissing-noreturn \ | ||||
|       -Wmissing-format-attribute -Wnested-externs -Winline -Wwrite-strings \ | ||||
|       -Wcast-align -Wcast-qual -Wpointer-arith -Wdeclaration-after-statement \ | ||||
|       -Wsequence-point -Werror=implicit-function-declaration    \ | ||||
|       -Wl,-rpath=/lib   -o openrc rc.o rc-logger.o rc-misc.o rc-plugin.o _usage.o -lutil -lrc -leinfo -Wl,-Bdynamic -ldl | ||||
|     ld: rc-logger.o:/home/slyfox/dev/git/openrc/src/rc/rc-logger.h:16: | ||||
|       multiple definition of `rc_logger_pid'; rc.o:openrc/src/rc/rc-logger.h:16: first defined here | ||||
|     ld: rc-logger.o:/home/slyfox/dev/git/openrc/src/rc/rc-logger.h:17: | ||||
|       multiple definition of `rc_logger_tty'; rc.o:openrc/src/rc/rc-logger.h:17: first defined here | ||||
|     ``` | ||||
|      | ||||
|     gcc-10 will change the default from -fcommon to fno-common: | ||||
|     https://gcc.gnu.org/PR85678. | ||||
|      | ||||
|     The error also happens if CFLAGS=-fno-common passed explicitly. | ||||
|      | ||||
|     This fixes #348. | ||||
|  | ||||
| commit 6deda13754f1b60245945e953cce8d97e40e86fc | ||||
| Author: Wolf <wolf@wolfsden.cz> | ||||
| Commit: William Hubbs <w.d.hubbs@gmail.com> | ||||
|  | ||||
|     supervise-daemon: Fix segfault when executable does not exist | ||||
|      | ||||
|     When executable is provided just by name (and therefore searched in a | ||||
|     path), exec_file is reset to NULL every time. exists() handles it being | ||||
|     NULL just fine, but dereferencing it in eerror does not work. | ||||
|      | ||||
|     Fixes #326 | ||||
|     Fixes #327 | ||||
|  | ||||
| commit eb610859519292c6164c4ba601d22e642c306beb | ||||
| Author: artoo <artoo@artixlinux.org> | ||||
| Commit: William Hubbs <w.d.hubbs@gmail.com> | ||||
|  | ||||
|     binfmt: ensure a file is ungegistered before registering | ||||
|      | ||||
|     This fixes #328 | ||||
|  | ||||
| commit 039845b742e40752b05ef9393d5a6959d55fe0b6 | ||||
| Author: Andrew Scheller <github@loowis.durge.org> | ||||
| Commit: William Hubbs <w.d.hubbs@gmail.com> | ||||
|  | ||||
|     Fix typo in README | ||||
|      | ||||
|     This fixes #338 | ||||
|  | ||||
| commit a7e7fd2b37a7666f26c2d4de9386b2d04f583b41 | ||||
| Author: Ethan Sommer <e5ten.arch@gmail.com> | ||||
| Commit: William Hubbs <w.d.hubbs@gmail.com> | ||||
|  | ||||
|     make grep usage POSIX compliant | ||||
|      | ||||
|     use grep -E instead of egrep | ||||
|     check for space or end of line instead of GNU-specific word boundary | ||||
|      | ||||
|     This fixes #345 | ||||
|  | ||||
| commit 12e147a107c6e27172734c660624343a3c092437 | ||||
| Author: Jason Bowen <jbowen@infinitecactus.com> | ||||
| Commit: William Hubbs <w.d.hubbs@gmail.com> | ||||
|  | ||||
|     Delete stray text. | ||||
|      | ||||
|     It looks like some stray text was left at the bottom of the file: | ||||
|     ``` | ||||
|     package. | ||||
|     migrating your system to openrc-init. | ||||
|     ``` | ||||
|     There's a subsection on migrating a system to `openrc-ini`; perhaps this was | ||||
|     an embryonic section title? | ||||
|      | ||||
|     This fixes #347. | ||||
|  | ||||
| commit fd852865e06a74ecf8b77ff534fa8053e020160f | ||||
| Author: William Hubbs <william.hubbs@sony.com> | ||||
| Commit: William Hubbs <william.hubbs@sony.com> | ||||
|  | ||||
|     openrc-shutdown.c: typo fix | ||||
|  | ||||
| commit 35ec935741ffb571cacf763dcca98661c0cfb296 | ||||
| Author: William Hubbs <w.d.hubbs@gmail.com> | ||||
| Commit: William Hubbs <william.hubbs@sony.com> | ||||
|  | ||||
|     ci/travis.sh: run shellcheck on shell scripts | ||||
|  | ||||
| commit 19cfd82dadf2e52299cf3752deb04562be52145c | ||||
| Author: Austin English <austinenglish@gmail.com> | ||||
| Commit: William Hubbs <william.hubbs@sony.com> | ||||
|  | ||||
|     .travis.yml: install shellcheck | ||||
|  | ||||
| commit 87cfad3d6cd619c6090e8209092448ae68279b0c | ||||
| Author: E5ten <ethancsommer@gmail.com> | ||||
| Commit: William Hubbs <william.hubbs@sony.com> | ||||
|  | ||||
|     cgroup2_set_limits: verify that the cgroup2 path is a mount point | ||||
|      | ||||
|     prior to cgroups getting mounted, /sys/fs/cgroup will still exist, | ||||
|     but attempts to make directories in it will fail, change cgroup2_set_limits() to | ||||
|     verify that cgroups are mounted instead of just checking that /sys/fs/cgroup | ||||
|     exists. | ||||
|      | ||||
|     This fixes #307. | ||||
|     This fixes #321. | ||||
|  | ||||
| commit 8e31614c4b6679fc1bc1f1d1e0779dcedd066a5a | ||||
| Author: William Hubbs <william.hubbs@sony.com> | ||||
| Commit: William Hubbs <william.hubbs@sony.com> | ||||
|  | ||||
|     fix clang build | ||||
|   | ||||
| @@ -1,3 +1,3 @@ | ||||
| NAME=		openrc | ||||
| VERSION=	0.43 | ||||
| VERSION=	0.43.4 | ||||
| PKG=		${NAME}-${VERSION} | ||||
|   | ||||
							
								
								
									
										14
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								README.md
									
									
									
									
									
								
							| @@ -78,16 +78,14 @@ remove them and then install so that the OS hooks into OpenRC. | ||||
|  | ||||
| ## Reporting Bugs | ||||
|  | ||||
| Please report issues on our github bug tracker [1]. | ||||
| Please report bugs on our [bug tracker](http://github.com/OpenRC/openrc/issues). | ||||
|  | ||||
| Better yet, if you can contribute code, please feel free to submit pull | ||||
| requests [2]. | ||||
| If you can contribute code , please feel free to do so by opening | ||||
| [pull requests](https://github.com/OpenRC/openrc/pulls). | ||||
|  | ||||
| ## IRC Channel | ||||
|  | ||||
| We have an official irc channel, #openrc on freenode, feel free to join | ||||
| us there. | ||||
| We have an official irc channel, #openrc on the libera network. | ||||
| Please connect your irc client to irc.libera.chat and join #openrc on | ||||
| that network. | ||||
|  | ||||
| [1]	https://github.com/openrc/openrc/issues | ||||
|  | ||||
| [2]	https://github.com/openrc/openrc/pulls | ||||
|   | ||||
| @@ -1,2 +1,2 @@ | ||||
| # Set to the hostname of this machine | ||||
| # Hostname fallback if /etc/hostname does not exist | ||||
| hostname="localhost" | ||||
|   | ||||
| @@ -41,18 +41,18 @@ find_modfiles() | ||||
|  | ||||
| load_modules() | ||||
| { | ||||
| 	local file m modules rc x | ||||
| 	local file m _modules rc x | ||||
| 	file=$1 | ||||
| 	[ -z "$file" ] && return 0 | ||||
| 	while read m x; do | ||||
| 		case $m in | ||||
| 			\;*) continue ;; | ||||
| 			\#*) continue ;; | ||||
| 			*) modules="$modules $m" | ||||
| 			*) _modules="$_modules $m" | ||||
| 			;; | ||||
| 		esac | ||||
| 	done < $file | ||||
| 	for x in $modules; do | ||||
| 	for x in $_modules; do | ||||
| 		ebegin "Loading module $x" | ||||
| 		case "$RC_UNAME" in | ||||
| 			FreeBSD) kldload "$x"; rc=$? ;; | ||||
|   | ||||
| @@ -37,6 +37,8 @@ servicename | ||||
| .Ar count | ||||
| .Fl N , -nicelevel | ||||
| .Ar level | ||||
| .Fl p , -pidfile | ||||
| .Ar supervisorpidfile | ||||
| .Fl P , -respawn-period | ||||
| .Ar seconds | ||||
| .Fl R , -retry | ||||
| @@ -122,6 +124,9 @@ If respawn-period is also set, more than respawn-max crashes must occur | ||||
| during respawn-period seconds to cause | ||||
| .Nm | ||||
| to give up and exit. | ||||
| .It Fl p , -pidfile Ar supervisorpidfile | ||||
| Sets a path for the supervisor's pid file. Note that this is not the pid | ||||
| file of the process that is being supervised. | ||||
| .It Fl N , -nicelevel Ar level | ||||
| Modifies the scheduling priority of the daemon. | ||||
| .It Fl P , -respawn-period Ar seconds | ||||
|   | ||||
| @@ -18,9 +18,10 @@ if [ -f /proc/acpi/ac_adapter/*/state ]; then | ||||
| 		"state:"*"off-line") exit 128;; | ||||
| 		esac | ||||
| 	done | ||||
| elif [ -f /sys/class/power_supply/*/online ]; then | ||||
| 	cat /sys/class/power_supply/*/online | while read line; do | ||||
| 		[ "${line}" = 0 ] && exit 128 | ||||
| elif [ -d /sys/class/power_supply ]; then | ||||
| 	for dir in /sys/class/power_supply/*/; do | ||||
| 		[ "$(cat "${dir}/type")" != "Mains" ] && continue | ||||
| 		[ "$(cat "${dir}/online")" = 0 ] && exit 128 | ||||
| 	done | ||||
| elif [ -f /proc/pmu/info ]; then | ||||
| 	cat /proc/pmu/info | while read line; do | ||||
|   | ||||
| @@ -189,6 +189,7 @@ cgroup2_set_limits() | ||||
| { | ||||
| 	local cgroup_path | ||||
| 	cgroup_path="$(cgroup2_find_path)" | ||||
| 	[ -z "${cgroup_path}" ] && return 0 | ||||
| 	mountinfo -q "${cgroup_path}"|| return 0 | ||||
| 	rc_cgroup_path="${cgroup_path}/${RC_SVCNAME}" | ||||
| 	[ ! -d "${rc_cgroup_path}" ] && mkdir "${rc_cgroup_path}" | ||||
| @@ -208,7 +209,7 @@ cgroup2_set_limits() | ||||
| cgroup_cleanup() | ||||
| { | ||||
| 	cgroup_running || return 0 | ||||
| 	ebegin "starting cgroups cleanup" | ||||
| 	ebegin "Starting cgroups cleanup" | ||||
| 	local loops=0 | ||||
| 	cgroup_get_pids | ||||
| 	if [ -n "${cgroup_pids}" ]; then | ||||
| @@ -218,7 +219,7 @@ cgroup_cleanup() | ||||
| 			kill -s HUP ${cgroup_pids} 2> /dev/null | ||||
| 		kill -s "${stopsig:-TERM}" ${cgroup_pids} 2> /dev/null | ||||
| 		cgroup_get_pids | ||||
| 		while [ -n "$(cgroup_pids)" ] && | ||||
| 		while [ -n "${cgroup_pids}" ] && | ||||
| 			[ "${loops}" -lt "${rc_timeout_stopsec:-90}" ]; do | ||||
| 			loops=$((loops+1)) | ||||
| 			sleep 1 | ||||
|   | ||||
| @@ -481,7 +481,8 @@ rc_runlevel_exists(const char *runlevel) | ||||
| 	char path[PATH_MAX]; | ||||
| 	struct stat buf; | ||||
|  | ||||
| 	if (!runlevel || strcmp(runlevel, ".") == 0 || strcmp(runlevel, "..") == 0) | ||||
| 	if (!runlevel || strcmp(runlevel, "") == 0 || strcmp(runlevel, ".") == 0 || | ||||
| 		strcmp(runlevel, "..") == 0) | ||||
| 		return false; | ||||
| 	snprintf(path, sizeof(path), "%s/%s", RC_RUNLEVELDIR, runlevel); | ||||
| 	if (stat(path, &buf) == 0 && S_ISDIR(buf.st_mode)) | ||||
|   | ||||
| @@ -92,13 +92,13 @@ static int get_dirfd(char *path, bool symlinks) { | ||||
| 	if (dirfd == -1) | ||||
| 		eerrorx("%s: unable to open the root directory: %s", | ||||
| 				applet, strerror(errno)); | ||||
| 	path_dupe = xstrdup(path); | ||||
| 	ch = path_dupe; | ||||
| 	ch = path; | ||||
| 	while (*ch) { | ||||
| 		if (*ch == '/') | ||||
| 			components++; | ||||
| 		ch++; | ||||
| 	} | ||||
| 	path_dupe = xstrdup(path); | ||||
| 	item = strtok(path_dupe, "/"); | ||||
| #ifdef O_PATH | ||||
| 	flags |= O_PATH; | ||||
| @@ -131,6 +131,7 @@ static int get_dirfd(char *path, bool symlinks) { | ||||
| 			 */ | ||||
| 			close(new_dirfd); | ||||
| 		} else { | ||||
| 			/* now walk down the directory path */ | ||||
| 			close(dirfd); | ||||
| 			dirfd = new_dirfd; | ||||
| 			free(linkpath); | ||||
| @@ -140,13 +141,39 @@ static int get_dirfd(char *path, bool symlinks) { | ||||
| 		} | ||||
| 	} | ||||
| 	free(path_dupe); | ||||
| 	if (linkpath) { | ||||
| 		free(linkpath); | ||||
| 		linkpath = NULL; | ||||
| 	} | ||||
| 	free(linkpath); | ||||
| 	return dirfd; | ||||
| } | ||||
|  | ||||
| static char *clean_path(char *path) | ||||
| { | ||||
| 	char *ch; | ||||
| 	char *ch2; | ||||
| 	char *str; | ||||
| 	str = xmalloc(strlen(path)); | ||||
| 	ch = path; | ||||
| 	ch2 = str; | ||||
| 	while (true) { | ||||
| 		*ch2 = *ch; | ||||
| 		ch++; | ||||
| 		ch2++; | ||||
| 		if (!*(ch-1)) | ||||
| 			break; | ||||
| 		while (*(ch - 1) == '/' && *ch == '/') | ||||
| 			ch++; | ||||
| 	} | ||||
| 	/* get rid of trailing / characters */ | ||||
| 	while ((ch = strrchr(str, '/'))) { | ||||
| 		if (ch == str) | ||||
| 			break; | ||||
| 		if (!*(ch+1)) | ||||
| 			*ch = 0; | ||||
| 		else | ||||
| 			break; | ||||
| 	} | ||||
| 	return str; | ||||
| } | ||||
|  | ||||
| static int do_check(char *path, uid_t uid, gid_t gid, mode_t mode, | ||||
| 	inode_t type, bool trunc, bool chowner, bool symlinks, bool selinux_on) | ||||
| { | ||||
| @@ -344,6 +371,7 @@ int main(int argc, char **argv) | ||||
| 	bool symlinks = false; | ||||
| 	bool writable = false; | ||||
| 	bool selinux_on = false; | ||||
| 	char *path = NULL; | ||||
|  | ||||
| 	applet = basename_c(argv[0]); | ||||
| 	while ((opt = getopt_long(argc, argv, getoptstring, | ||||
| @@ -406,12 +434,14 @@ int main(int argc, char **argv) | ||||
| 		selinux_on = true; | ||||
|  | ||||
| 	while (optind < argc) { | ||||
| 		path = clean_path(argv[optind]); | ||||
| 		if (writable) | ||||
| 			exit(!is_writable(argv[optind])); | ||||
| 		if (do_check(argv[optind], uid, gid, mode, type, trunc, chowner, | ||||
| 			exit(!is_writable(path)); | ||||
| 		if (do_check(path, uid, gid, mode, type, trunc, chowner, | ||||
| 					symlinks, selinux_on)) | ||||
| 			retval = EXIT_FAILURE; | ||||
| 		optind++; | ||||
| 		free(path); | ||||
| 	} | ||||
|  | ||||
| 	if (selinux_on) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user