--- /mnt/repositories/gentoo/sys-devel/prelink/files/prelink.cron 2015-08-09 01:38:18.000000000 +0100 +++ /etc/cron.daily/prelink 2019-02-19 05:51:04.086093970 +0000 @@ -11,15 +11,20 @@ ionice -c3 -p $$ >/dev/null 2>&1 renice +19 -p $$ >/dev/null 2>&1 +# Restart init if needed +restart_sysvinit() { + local libs=$(prelink -p | awk -n '/^\S/ && p { exit }; /^\/sbin\/init / && p = 1; /^\s/ && p { print $1 };') + [ -n "$libs" ] && [ -n "$(find $libs -ctime -1)" ] && /sbin/telinit u +} + if [ "$PRELINKING" != yes ]; then sed -ri '/^[[:space:]]*#?[[:space:]]*KDE_IS_PRELINKED=/s:.*:#KDE_IS_PRELINKED=1:' /etc/env.d/*kde* 2>/dev/null if [ -f /etc/prelink.cache ]; then echo /usr/sbin/prelink -uav > ${log} /usr/sbin/prelink -uav >> ${log} 2>&1 \ || echo Prelink failed with return value $? >> ${log} + restart_sysvinit rm -f /etc/prelink.cache - # Restart init if needed - [ -n "$(find `ldd /sbin/init | awk 'NF == 4 { print $3 }'` /sbin/init -ctime -1 2>/dev/null )" ] && /sbin/telinit u fi exit 0 fi @@ -55,7 +60,6 @@ echo /usr/sbin/prelink -av $PRELINK_OPTS > ${log} /usr/sbin/prelink -av $PRELINK_OPTS >> ${log} 2>&1 \ || echo Prelink failed with return value $? >> ${log} -# Restart init if needed -[ -n "$(find `ldd /sbin/init | awk 'NF == 4 { print $3 }'` /sbin/init -ctime -1 2>/dev/null )" ] && /sbin/telinit u +restart_sysvinit exit 0