#!/bin/bash
trap '' 2
start_time=$(date +%s)
LD_PRELOAD=$HPCTOOL_LD_PRELOAD $@ &

APP_PID=$!

function handle_signal_terminal() {
    if [ -n "$OMPI_COMM_WORLD_LOCAL_SIZE" ] || [ -n "$MPI_LOCALNRANKS" ]; then
        sig=2
    else
        sig=15
    fi
    kill -$sig "$APP_PID"
    end_time=$(date +%s)
    execution_time=$((end_time - start_time))
    wait_time=$((execution_time * 2))
    timeout ${wait_time}s tail --pid  "$APP_PID" -f /dev/null
    if ps -p $APP_PID > /dev/null; then
      kill -9 "$APP_PID"
    fi
}
trap handle_signal_terminal SIGTERM

wait "$APP_PID"
