#!/bin/bash -e slice=app rand=$(tr -dc 'a-f0-9' < /dev/urandom | head -c 8) args=() while getopts "s:e:d:cnw" opt do case "$opt" in s) slice="$OPTARG";; e) args+=("--setenv=$OPTARG");; d) args+=("--working-directory=$OPTARG");; c) args+=("--scope");; n) args+=("--no-block");; w) args+=("--wait");; *) shift;; esac done shift $((OPTIND-1)) exec systemd-run \ --user \ --collect \ --slice="$slice" \ --unit="$slice-$1-$rand" \ --property=BindsTo=graphical-session.target \ --property=ExitType=cgroup \ "${args[@]}" -- "$@"