diff options
author | Miroslav Lichvar <mlichvar@redhat.com> | 2011-06-09 16:24:16 +0200 |
---|---|---|
committer | Miroslav Lichvar <mlichvar@redhat.com> | 2011-06-09 17:05:35 +0200 |
commit | aa851e935485de31e3c1008756fdd85deef5bb88 (patch) | |
tree | a0c3891fdc9c137cffbc15249a5f15ef5e78fbdd /abrt-ccpp.init | |
parent | e495dd05e5c938008e9a1126985710b8e22d9ea6 (diff) | |
download | abrt-aa851e935485de31e3c1008756fdd85deef5bb88.tar.gz abrt-aa851e935485de31e3c1008756fdd85deef5bb88.tar.xz abrt-aa851e935485de31e3c1008756fdd85deef5bb88.zip |
move code from ccpp initscript to abrt-install-ccpp-hook
It will be used by systemd service.
Diffstat (limited to 'abrt-ccpp.init')
-rw-r--r-- | abrt-ccpp.init | 91 |
1 files changed, 9 insertions, 82 deletions
diff --git a/abrt-ccpp.init b/abrt-ccpp.init index 7f236237..8935378b 100644 --- a/abrt-ccpp.init +++ b/abrt-ccpp.init @@ -15,38 +15,8 @@ # Source function library. . /etc/rc.d/init.d/functions -# For debugging -dry_run=false -verbose=false - -# We don't have pid files, therefore have to use -# a flag file in /var/lock/subsys to enable GUI service tools -# to figure out our status LOCK="/var/lock/subsys/abrt-ccpp" - -PATTERN_FILE="/proc/sys/kernel/core_pattern" -SAVED_PATTERN_DIR="/var/run/abrt" -SAVED_PATTERN_FILE="/var/run/abrt/saved_core_pattern" -HOOK_BIN="/usr/libexec/abrt-hook-ccpp" -# Must match percent_specifiers[] order in abrt-hook-ccpp.c: -PATTERN="|$HOOK_BIN /var/spool/abrt %s %c %p %u %g %t %e" -# Same, but with bogus "executable name" parameter -PATTERN1="|$HOOK_BIN /var/spool/abrt %s %c %p %u %g %t e" - -# core_pipe_limit specifies how many dump_helpers can run at the same time -# 0 - means unlimited, but it's not guaranteed that /proc/<pid> of crashing -# process will be available for dump_helper. -# 4 - means that 4 dump_helpers can run at the same time (the rest will also -# run, but they will fail to read /proc/<pid>). -# -# This should be enough for ABRT, we can miss some crashes, but what are -# the odds that more processes crash at the same time? And moreover, -# do people want to save EVERY ONE of the crashes when they have -# a crash storm? I don't think so. -# The value of 4 has been recommended by nhorman. -# -CORE_PIPE_LIMIT_FILE="/proc/sys/kernel/core_pipe_limit" -CORE_PIPE_LIMIT="4" +INSTALL_HOOK="/usr/sbin/abrt-install-ccpp-hook" RETVAL=0 @@ -58,46 +28,18 @@ check() { start() { check - cur=`cat "$PATTERN_FILE"` - cur_first=`printf "%s" "$cur" | sed 's/ .*//'` - - # Is there a %e (executable name) in old pattern anywhere? - if test x"${cur#.*%e}" = x"${cur}"; then - # No. Can use PATTERN with less risk of overflow - # on expansion (executable names can be LONG). - # Overflow would cause kernel to abort coredump. BAD. - PATTERN="$PATTERN1" - fi - - $verbose && printf "cur:'%s'\n" "$cur" - # Is it already installed? - if test x"$cur_first" != x"|$HOOK_BIN"; then # no - # It is not installed - mkdir -p -- "$SAVED_PATTERN_DIR" - printf "%s\n" "$cur" >"$SAVED_PATTERN_FILE" - # Install new handler - $verbose && printf "Installing to %s:'%s'\n" "$PATTERN_FILE" "$PATTERN" - $dry_run || echo "$PATTERN" >"$PATTERN_FILE" - $dry_run || touch -- "$LOCK" - - # Check core_pipe_limit and change it if it's 0, - # otherwise the abrt-hook-ccpp won't be able to read /proc/<pid> - # of the crashing process - if test x"`cat "$CORE_PIPE_LIMIT_FILE"`" = x"0"; then - echo "$CORE_PIPE_LIMIT" >"$CORE_PIPE_LIMIT_FILE" - fi - fi + $INSTALL_HOOK install + RETVAL=$? + [ $RETVAL -eq 0 ] && touch -- "$LOCK" return $RETVAL } stop() { check - if test -f "$SAVED_PATTERN_FILE"; then - $verbose && printf "Restoring to %s:'%s'\n" "$PATTERN_FILE" "`cat "$SAVED_PATTERN_FILE"`" - $dry_run || cat "$SAVED_PATTERN_FILE" >"$PATTERN_FILE" - fi - $dry_run || rm -f -- "$LOCK" + $INSTALL_HOOK uninstall + RETVAL=$? + [ $RETVAL -eq 0 ] && rm -f -- "$LOCK" return $RETVAL } @@ -128,25 +70,10 @@ restart) restart ;; condrestart) - cur=`cat "$PATTERN_FILE"` - cur_first=`printf "%s" "$cur" | sed 's/ .*//'` - # Is it already installed? - if test x"$cur_first" = x"|$HOOK_BIN"; then # yes - $verbose && printf "Installed, re-installing\n" - restart - fi + $INSTALL_HOOK is-installed && restart ;; status) - cur=`cat "$PATTERN_FILE"` - cur_first=`printf "%s" "$cur" | sed 's/ .*//'` - # Is it already installed? - if test x"$cur_first" = x"|$HOOK_BIN"; then # yes - $verbose && printf "Installed\n" - RETVAL=0 - else - $verbose && printf "Not installed\n" - RETVAL=3 # "stopped normally" - fi + $INSTALL_HOOK is-installed && RETVAL=0 || RETVAL=3 ;; *) echo $"Usage: $0 {start|stop|status|restart|condrestart|reload|force-reload}" |