#!/usr/bin/env bash # Lists processes that can be controlled with fiu-ctrl. # default remote control over named pipes prefix; we use the same one as # fiu-run so it's easier to use FIFO_PREFIX="${TMPDIR:-/tmp}/fiu-ctrl" declare -a PIDS HELP_MSG=" Usage: fiu-ls [options] The following options are supported: -f ctrlpath Set the default prefix for remote control over named pipes. (defaults to \"$FIFO_PREFIX\", which is usually correct if the program was run using fiu-run(1)). " while getopts "f:h" opt; do case $opt in f) FIFO_PREFIX="$OPTARG" ;; h|*) echo "$HELP_MSG" exit 1 ;; esac; done for P in `ls -1 $FIFO_PREFIX-*.in 2>/dev/null` ; do if [ -n "$P" ] ; then OUT="`echo $P | cut -d. -f1`.out" if [ -p "$P" -a -w "$P" -a -p "$OUT" -a -r "$OUT" ] ; then PID="`echo $P | cut -d- -f3 | cut -d. -f1`" if [ -n "$PID" ] && \ kill -0 "$PID" >/dev/null 2>/dev/null ; then PIDS[${#PIDS[*]}]="$PID" fi fi fi done for P in "${PIDS[@]}"; do CMDLINE="`tr '\0' ' ' < /proc/$P/cmdline 2>/dev/null`" printf "%5d: %s\n" "$P" "$CMDLINE" done