crash-manager.sh: remove systemd-journald usage 91/60291/2
authorKarol Lewandowski <k.lewandowsk@samsung.com>
Wed, 24 Feb 2016 16:45:15 +0000 (17:45 +0100)
committerAdrian Szyndela <adrian.s@samsung.com>
Mon, 29 Feb 2016 12:13:56 +0000 (13:13 +0100)
Change-Id: Ib4012e28105c28b170c407a037a779d033f2c631

packaging/crash-worker.spec
src/crash-manager/CMakeLists.txt
src/crash-manager/crash-init.service.in [deleted file]
src/crash-manager/crash-init.sh.in [deleted file]
src/crash-manager/crash-manager.sh.in

index 4631c8d38ae15eed487ef9069167b5def639aff8..f18b11420144d4c0b443f36e7a085c43a1e2b29b 100644 (file)
@@ -33,7 +33,6 @@ export CFLAGS+=" -Werror"
 %cmake . \
           -DCMAKE_INSTALL_PREFIX=%{_prefix} \
           -DTZ_SYS_BIN=%{TZ_SYS_BIN} \
-          -DUNIT_DIR=%{_unitdir} \
           -DCRASH_PATH=%{crash_path} \
           -DCRASH_TEMP=%{crash_temp} \
           -DCRASH_PIPE_PATH=%{_libexecdir}/crash-pipe
@@ -47,8 +46,6 @@ mkdir -p %{buildroot}%{crash_root_path}
 mkdir -p %{buildroot}%{crash_path}
 mkdir -p %{buildroot}%{crash_temp}
 
-%install_service sysinit.target.wants crash-init.service
-
 %files
 %license LICENSE
 %manifest crash-worker.manifest
@@ -58,8 +55,5 @@ mkdir -p %{buildroot}%{crash_temp}
 %dir %{crash_temp}
 %attr(0755,system,system) %{_bindir}/dump_systemstate
 %{_bindir}/crash-manager.sh
-%{_bindir}/crash-init.sh
 %{_libexecdir}/crash-pipe
 %{_prefix}/lib/sysctl.d/99-crash-manager.conf
-%{_unitdir}/crash-init.service
-%{_unitdir}/sysinit.target.wants/crash-init.service
index 04451b0101999bcacb2abe8af99065b61c835139..a775998f744b4bcf27e695a01e6e6913bb3d89c3 100644 (file)
@@ -1,12 +1,9 @@
 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
 
 SET(CRASH_MANAGER "crash-manager")
-SET(CRASH_INIT "crash-init")
 
 CONFIGURE_FILE(${CRASH_MANAGER}.sh.in ${CRASH_MANAGER}.sh @ONLY)
 CONFIGURE_FILE(99-${CRASH_MANAGER}.conf.in 99-${CRASH_MANAGER}.conf @ONLY)
-CONFIGURE_FILE(${CRASH_INIT}.service.in ${CRASH_INIT}.service @ONLY)
-CONFIGURE_FILE(${CRASH_INIT}.sh.in ${CRASH_INIT}.sh @ONLY)
 
 INSTALL(FILES ${CMAKE_SOURCE_DIR}/src/${CRASH_MANAGER}/${CRASH_MANAGER}.sh
                DESTINATION ${TZ_SYS_BIN}
@@ -16,13 +13,3 @@ INSTALL(FILES ${CMAKE_SOURCE_DIR}/src/${CRASH_MANAGER}/${CRASH_MANAGER}.sh
 INSTALL(FILES ${CMAKE_SOURCE_DIR}/src/${CRASH_MANAGER}/99-${CRASH_MANAGER}.conf
                DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/sysctl.d
                PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
-
-INSTALL(FILES ${CMAKE_SOURCE_DIR}/src/${CRASH_MANAGER}/${CRASH_INIT}.service
-               DESTINATION ${UNIT_DIR}
-               PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE
-               GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
-
-INSTALL(FILES ${CMAKE_SOURCE_DIR}/src/${CRASH_MANAGER}/${CRASH_INIT}.sh
-               DESTINATION ${TZ_SYS_BIN}
-               PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE
-               GROUP_READ GROUP_EXECUTE WORLD_READ)
diff --git a/src/crash-manager/crash-init.service.in b/src/crash-manager/crash-init.service.in
deleted file mode 100644 (file)
index ea65932..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-[Unit]
-Description=Crash init
-DefaultDependencies=no
-After=local-fs.target
-
-[Service]
-Type=normal
-ExecStart=@TZ_SYS_BIN@/@CRASH_INIT@.sh
-
-[Install]
-WantedBy=sysinit.target
diff --git a/src/crash-manager/crash-init.sh.in b/src/crash-manager/crash-init.sh.in
deleted file mode 100644 (file)
index f2d3020..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/bin/sh
-
-################################
-# MOUNT tmpfs ON TEMPORARY PATH
-################################
-
-mkdir -p @CRASH_TEMP@
-/usr/bin/mount tmpfs @CRASH_TEMP@ -t tmpfs
-
-
-############################
-# REMOVE PREVIOUS COREDUMPS
-############################
-
-id=""
-
-if [ -e "/proc/sys/kernel/random/boot_id" ]
-then
-       read line< /proc/sys/kernel/random/boot_id
-       id=`echo ${line} | sed -e 's/-//g'`
-fi
-
-if [ -d "/var/lib/systemd/coredump" ]
-then
-       cd /var/lib/systemd/coredump
-
-#remove garbage dump files
-       if [ -e ".#core.*" ]
-       then
-               for i in `ls -a .#core.*`
-               do
-                       rm -f "$i"
-               done
-       fi
-
-       for i in `ls -a`
-       do
-               if [ -d $i ]
-               then
-                       continue
-               fi
-
-#remove dump files if boot id is different
-               if [ $i != *.$id.* ]
-               then
-                       rm -f "$i"
-               fi
-       done
-fi
index ec547bc97696bd2d5824aadab31475916373cff5..2d78a28cb668525db642e35dde18d7db35223498 100644 (file)
@@ -1,36 +1,37 @@
 #!/bin/sh
 
-process="$1"
-user="$2"
-group="$3"
-signal="$4"
-time="$5"
-app="$6"
-
-/usr/lib/systemd/systemd-coredump "$process" "$user" "$group" "$signal" "$time" "$app"
+set -e
+exec >/dev/null 2>&1
 
-temppath=@CRASH_TEMP@
-resultpath=@CRASH_PATH@
-name="$app"_"$process"_"$time"
-path="$temppath"/"$name"
-info="$name".info
-dump="$name".coredump
-log="$name".log
-result="$name".tar.gz
+PATH=/bin:/usr/bin
+CRASH_PATH="@CRASH_PATH@"
+CRASH_TEMP="@CRASH_TEMP@"
 
-/usr/bin/mkdir -p "$temppath"
-/usr/bin/mkdir -p "$resultpath"
-/usr/bin/mkdir -p "$path"
+# Expected invocation from kernel:
+#
+#   argv0 PID UID GID SIGNAL TIME CMD
+pid="$1"
+time="$5"
+cmd="$6"
 
-cd "$path"
+temp_dir="$(mktemp -d "${CRASH_TEMP}/crash.XXXXXX")"
+cleanup()
+{
+    [ "$temp_dir" ] && rm -rf "$temp_dir"
+}
+trap cleanup 0 2 15
 
-/usr/bin/coredumpctl info "$process" >> "$info"
-/usr/bin/coredumpctl dump "$process" --output="$dump"
-/usr/bin/dump_systemstate -d -k -f "$log"
+name="${cmd}_${pid}_${time}"
+result_path="${CRASH_PATH}/${name}.tar.gz"
+pfx="${temp_dir}/${name}"
+info_path="${pfx}/${name}.info"
+core_path="${pfx}/${name}.coredump"
+log_path="${pfx}/${name}.log"
 
-cd "$temppath"
-/usr/bin/tar cvfz "$result" "$name"/"$dump" "$name"/"$info" "$name"/"$log"
+mkdir -p "$CRASH_PATH" "$pfx"
 
-/usr/bin/mv "$temppath"/"$result" "$resultpath"/"$result"
+@CRASH_PIPE_PATH@ --save-core "$core_path" --report "$@" > "$info_path"
+dump_systemstate -d -k -f "$log_path" || true
 
-/usr/bin/rm -rf "$path"
+tar czf "${temp_dir}/report.tar.gz" -C "$temp_dir" "$name"
+mv "${temp_dir}/report.tar.gz" "$result_path"