Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
DISCONTINUED:openSUSE:11.1:Update
smartmontools
smartmontools-init-update.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File smartmontools-init-update.patch of Package smartmontools
--- smartd.initd.in +++ smartd.initd.in @@ -137,7 +137,7 @@ # SuSE elif [ -f /etc/SuSE-release ] ; then test -x $SMARTD_BIN || exit 5 - + # Existence of config file is optional SMARTD_CONFIG=/etc/smartd.conf @@ -147,48 +147,61 @@ # Shell functions sourced from /etc/rc.status: # rc_check check and set local and overall rc status # rc_status check and set local and overall rc status - # rc_status -v ditto but be verbose in local rc status - # rc_status -v -r ditto and clear the local rc status + # rc_status -v be verbose in local rc status and clear it afterwards + # rc_status -v -r ditto and clear both the local and overall rc status + # rc_status -s display "skipped" and exit with status 3 + # rc_status -u display "unused" and exit with status 3 # rc_failed set local and overall rc status to failed - # rc_reset clear local rc status (overall remains) + # rc_failed <num> set local and overall rc status to <num> + # rc_reset clear both the local and overall rc status # rc_exit exit appropriate to overall rc status + # rc_active checks whether a service is activated by symlinks . /etc/rc.status - - # First reset status of this service + + # Reset status of this service rc_reset - + # Return values acc. to LSB for all commands but status: - # 0 - success - # 1 - misc error - # 2 - invalid or excess args - # 3 - unimplemented feature (e.g. reload) - # 4 - insufficient privilege - # 5 - program not installed - # 6 - program not configured + # 0 - success + # 1 - generic or unspecified error + # 2 - invalid or excess argument(s) + # 3 - unimplemented feature (e.g. "reload") + # 4 - user had insufficient privileges + # 5 - program is not installed + # 6 - program is not configured + # 7 - program is not running + # 8--199 - reserved (8--99 LSB, 100--149 distrib, 150--199 appl) # # Note that starting an already running service, stopping # or restarting a not-running service as well as the restart - # with force-reload (in case signalling is not supported) are + # with force-reload (in case signaling is not supported) are # considered a success. + case "$1" in start) echo -n "Starting smartd " - ## Start daemon with startproc(8). If this fails - ## the echo return value is set appropriate. - - # startproc should return 0, even if service is - # already running to match LSB spec. - startproc $SMARTD_BIN $smartd_opts - - # Remember status and be verbose - rc_status -v + ## Start daemon with startproc(8). If this fails + ## the return value is set appropriately by startproc. + + # We don't use startproc - we need to check for return code 17. + if ! /sbin/checkproc $SMARTD_BIN ; then + $SMARTD_BIN $smartd_opts + # Remember status and be verbose + if test $? -ne 17 ; then + rc_status -v + else + rc_status -u + fi + else + rc_reset + rc_status -v + fi ;; stop) echo -n "Shutting down smartd " - killproc -TERM $SMARTD_BIN - - # Remember status and be verbose - rc_status -v + /sbin/killproc -TERM $SMARTD_BIN + # Remember status and be verbose + rc_status -v ;; try-restart|condrestart) ## Do a restart only if the service was active before. @@ -199,51 +212,60 @@ fi $0 status if test $? = 0; then - $0 restart - else + $0 restart + else rc_reset # Not running is not a failure. fi # Remember status and be quiet rc_status ;; - restart | force-reload) + restart) $0 stop $0 start + # Remember status and be quiet + rc_status + ;; + force-reload|reload) + echo -n "Reload service smartd " + /sbin/killproc -HUP $SMARTD_BIN + rc_status -v ;; - reload) - ## Like force-reload, but if daemon does not support - ## signaling, do nothing (!) - rc_failed 3 + rescan) + ## Rescan devices to be monitored (smartd specific function) + echo -n "Rescanning devices for service smartd " + /sbin/killproc -USR1 $SMARTD_BIN rc_status -v ;; status) - echo -n "Checking for service smartd " - ## Check status with checkproc(8), if process is running - ## checkproc will return with exit status 0. - - # Status has a slightly different for the status command: - # 0 - service running - # 1 - service dead, but /var/run/ pid file exists - # 2 - service dead, but /var/lock/ lock file exists - # 3 - service not running - - # NOTE: checkproc returns LSB compliant status values. - checkproc $SMARTD_BIN - rc_status -v - ;; - probe) + echo -n "Checking for service smartd " + ## Check status with checkproc(8), if process is running + ## checkproc will return with exit status 0. + + # Return value is slightly different for the status command: + # 0 - service up and running + # 1 - service dead, but /var/run/ pid file exists + # 2 - service dead, but /var/lock/ lock file exists + # 3 - service not running (unused) + # 4 - service status unknown :-( + # 5--199 reserved (5--99 LSB, 100--149 distro, 150--199 appl.) + + # NOTE: checkproc returns LSB compliant status values. + /sbin/checkproc $SMARTD_BIN + rc_status -v + ;; + probe) ## Optional: Probe for the necessity of a reload, print out the ## argument to this init script which is required for a reload. ## Note: probe is not (yet) part of LSB (as of 1.2) + ## Note: probe is not (yet) part of LSB (as of 1.9) test $SMARTD_CONFIG -nt /var/run/smartd.pid && echo reload ;; - *) - echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}" + *) + echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|rescan|probe}" exit 1 ;; esac - rc_exit # Debian case
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor