Ihr eigener Vorschlag ist überhaupt nicht schlecht. Ein solches Skript könnte etwas von der Form sein
#!/bin/bash # Get the program you wish to launch from arguments PROGNAME="$1" # Shift script arguments to use the remaining ones later shift # Check that a PROGNAME was provided if [ -z "$PROGNAME" ]; then echo "Usage: $0 <program> [program options]" exit 1 fi # Log in your home directory, one directory per program LOGDIR="$HOME/logs/$PROGNAME" # Create log directory if it doesn't exist yet if [ ! -d "$LOGDIR" ]; then mkdir -p "$LOGDIR" fi # Get the date now DATE=$(date +'%Y%m%d%H%M%S') # Start program with it's options and log into the logdir eval "$PROGNAME" $@ >"$/$_$.log" 2>"$/$_$.err"
Nun können Sie die Einträge in Ihrem Desktop-Startmenü so bearbeiten, dass Sie Ihren Wrapper jedes Mal verwenden, wenn Sie ein bestimmtes Programm starten.
Eine andere Option wäre die Verwendung von sudo, das automatisch in auth.log protokolliert, aber so verwendet wird, dass die Programme nicht als root gestartet werden, das heißt:
sudo -u $USER firefox
das wird firefox als sich selbst starten, mit sudo.
Zum Beispiel:
$ sudo -u $USER ksnapshot # I kill the program $ tail -1 /var/log/auth.log Dec 28 08:20:07 jonah sudo: raphink : TTY=pts/1 ; PWD=/home/raphink ; USER=raphink ; COMMAND=/usr/bin/ksnapshot