#!/bin/sh set -e TARGET_DIR=/pkgs/bin TARGET=gpu_usage TMP_DIR=`mktemp -d` || exit 1 cd "$TMP_DIR" cat > main.c << EOF #include int main() { char * const envp[] = {NULL}; return execlp("/usr/bin/lsof", "-w",\\ EOF for a in /dev/nvidia[0-9]* ; do echo ' "'$a'",'\\ >> main.c done cat >> main.c << EOF envp); } EOF gcc main.c -o "$TARGET" mkdir -p "$TARGET_DIR" mv "$TARGET" "$TARGET_DIR" chmod go-rw,go+x,u+s "$TARGET_DIR/$TARGET" rm -R "$TMP_DIR"