diff options
Diffstat (limited to 'bootchartd')
-rwxr-xr-x | bootchartd | 198 |
1 files changed, 0 insertions, 198 deletions
diff --git a/bootchartd b/bootchartd deleted file mode 100755 index 43fdfe9..0000000 --- a/bootchartd +++ /dev/null @@ -1,198 +0,0 @@ -#!/bin/sh -# -# Bootchart logger script -# Ziga Mahkovec <ziga.mahkovec@klika.si> -# -# Modified heavily for Alpine Linux bootcharting -# Timo Teras <timo.teras@iki.fi> -# -# This script is used for data collection for the bootchart -# boot performance visualization tool (http://www.bootchart.org). -# -# This script is tied to Alpine Init scripts and charts the -# bootup procedure only. -# - -PATH="/sbin:/bin:/usr/sbin:/usr/bin:$PATH" - -# Configuration for bootchartd, the bootchart logger script. -TMPFS_SIZE=32m -SAMPLE_PERIOD=0.2 -PROCESS_ACCOUNTING="yes" -BOOTLOG_DEST=/var/log/bootchart.tgz -LOGDIR=/bootchart -EXIT_PROC="mingetty agetty rungetty getty fgetty" - -# Monitoring commands -log_cmd_1="cat /proc/stat" -log_target_1=proc_stat.log - -# /proc/diskstats is available in 2.6 kernels -log_cmd_2="cat /proc/diskstats" -log_target_2=proc_diskstats.log - -log_cmd_3="cat /proc/[1-9]*/stat 2>/dev/null" -log_target_3=proc_ps.log - -# Uncomment this line for diskless stations -#log_cmd_4="cat /proc/net/dev" -#log_target_4=proc_netdev.log - -max_log=3 - -do_logging() -{ - # Enable process accounting if configured - if [ "$PROCESS_ACCOUNTING" = "yes" ]; then - [ -e kernel_pacct ] || : > kernel_pacct - accton kernel_pacct - fi - - # open file descriptors - i=1 - while [ $i -le $max_log ]; do - eval target=\"\$log_target_$i\" - if [ -z "$target" ]; then - max_log=$i - break - fi - - fd=$((2 + $i)) - eval exec $fd'>>$target' - eval log_fd_$i=$fd - i=$(($i + 1)) - done - - not_stop_logging=true - while $not_stop_logging && \ - { ! pidof $EXIT_PROC >/dev/null; }; do - if [ -r /proc/uptime ]; then - # Write the time (in jiffies). - read uptime < /proc/uptime - uptime=${uptime%% [0-9]*} - uptime=${uptime%.*}${uptime#*.} - - i=1 - while [ $i -le $max_log ]; do - eval fd=\$log_fd_$i\; cmd=\$log_cmd_$i - - { - echo $uptime - # Log the command output - eval $cmd - echo - } >&$fd - i=$(($i + 1)) - done - fi - - sleep $SAMPLE_PERIOD - done - - # close file descriptors - i=1 - while [ $i -le $max_log ]; do - eval fd=\$log_fd_$i - eval exec $fd'>&-' - i=$(($i + 1)) - done - - [ -e kernel_pacct ] && accton -} - -# Stop the boot logger. The lock file is removed to force the loggers in -# background to exit. Some final log files are created and then all log files -# from the tmpfs are packaged and stored in $BOOTLOG_DEST. -finalize() -{ - # Stop process accounting if configured - local pacct= - [ -e kernel_pacct ] && pacct=kernel_pacct - - # Write system information - # Log some basic information about the system. - ( - echo "version = $VERSION" - echo "title = Boot chart for $( hostname | sed q ) ($( date ))" - echo "system.uname = $( uname -srvm | sed q )" - if [ -f /etc/alpine-release ]; then - echo "system.release = $( sed q /etc/alpine-release )" - elif [ -f /etc/gentoo-release ]; then - echo "system.release = $( sed q /etc/gentoo-release )" - elif [ -f /etc/SuSE-release ]; then - echo "system.release = $( sed q /etc/SuSE-release )" - elif [ -f /etc/debian_version ]; then - echo "system.release = Debian GNU/$( uname -s ) $( cat /etc/debian_version )" - elif [ -f /etc/frugalware-release ]; then - echo "system.release = $( sed q /etc/frugalware-release )" - elif [ -f /etc/pardus-release ]; then - echo "system.release = $( sed q /etc/pardus-release )" - else - echo "system.release = $( sed 's/\\.//g;q' /etc/issue )" - fi - - # Get CPU count - local cpucount=$(grep -c '^processor' /proc/cpuinfo) - if [ $cpucount -gt 1 -a -n "$(grep 'sibling.*2' /proc/cpuinfo)" ]; then - # Hyper-Threading enabled - cpucount=$(( $cpucount / 2 )) - fi - if grep -q '^model name' /proc/cpuinfo; then - echo "system.cpu = $( grep '^model name' /proc/cpuinfo | sed q )"\ - "($cpucount)" - else - echo "system.cpu = $( grep '^cpu' /proc/cpuinfo | sed q )"\ - "($cpucount)" - fi - - echo "system.kernel.options = $( sed q /proc/cmdline )" - ) >> header - - # Package log files - tar -zcf "$BOOTLOG_DEST" header $pacct *.log - rm "$LOGDIR"/* - rmdir "$LOGDIR" -} - -case "$1" in -start-initfs) - NEWROOT="$2" - ( - cleanup=true - trap "not_stop_logging=false" USR1 - trap "cleanup=false; not_stop_logging=false" USR2 - - mkdir "$LOGDIR" - cd "$LOGDIR" - do_logging - if $cleanup; then - sleep $SAMPLE_PERIOD - finalize - fi - ) & - echo $! > $LOGDIR/bootchart.pid - ;; -stop-initfs) - NEWROOT="$2" - - cd "$LOGDIR" - mkdir "$NEWROOT$LOGDIR" - cp /sbin/bootchartd $NEWROOT/sbin - PID=`cat bootchart.pid` - kill -USR2 $PID - wait $PID - mv * "$NEWROOT$LOGDIR" - ;; -start-rootfs) - ( - trap "not_stop_logging=false" USR1 - cd "$LOGDIR" - do_logging - finalize - ) & - shift - exec "$@" - ;; -esac - -exit 0 |