Add sunshin-run and -stop wrapper scripts
These can be used to manage starting and stopping processes that spawn children that otherwise would not be terminated when the moonlight session ends
This commit is contained in:
@@ -29,8 +29,8 @@ mkdir -p "${USER_HOME:?}/.config/autostart"
|
||||
if [[ ! -f "${USER_HOME:?}/.config/autostart/Sunshine.desktop" ]]; then
|
||||
echo "${sunshine_autostart_desktop:?}" > "${USER_HOME:?}/.config/autostart/Sunshine.desktop"
|
||||
fi
|
||||
# Configure default launchers:
|
||||
sunshine_apps_json="$(cat <<EOF
|
||||
# Generate default launchers template:
|
||||
sunshine_apps_data="$(cat <<EOF
|
||||
{
|
||||
"env": {
|
||||
"PATH": "\$(PATH):\$(HOME)\/.local\/bin"
|
||||
@@ -62,9 +62,18 @@ sunshine_apps_json="$(cat <<EOF
|
||||
}
|
||||
EOF
|
||||
)"
|
||||
# Generate default sunshine configuration template:
|
||||
sunshine_config_data="$(cat <<EOF
|
||||
global_prep_cmd = [{"do":"","undo":"flatpak-spawn --host /usr/bin/sunshine-stop"}]
|
||||
EOF
|
||||
)"
|
||||
|
||||
mkdir -p "${USER_HOME:?}/.config/sunshine"
|
||||
if [[ ! -f "${USER_HOME:?}/.config/sunshine/apps.json" ]]; then
|
||||
echo "${sunshine_apps_json:?}" > "${USER_HOME:?}/.config/sunshine/apps.json"
|
||||
echo "${sunshine_apps_data:?}" > "${USER_HOME:?}/.config/sunshine/apps.json"
|
||||
fi
|
||||
if [[ ! -f "${USER_HOME:?}/.config/sunshine/sunshine.conf " ]]; then
|
||||
echo "${sunshine_config_data:?}" > "${USER_HOME:?}/.config/sunshine/sunshine.conf "
|
||||
fi
|
||||
|
||||
echo "DONE"
|
||||
|
||||
32
overlay/usr/bin/sunshine-run
Executable file
32
overlay/usr/bin/sunshine-run
Executable file
@@ -0,0 +1,32 @@
|
||||
#!/usr/bin/env bash
|
||||
###
|
||||
# File: sunshine-run
|
||||
# Project: bin
|
||||
# File Created: Tuesday, 23rd August 2023 3:28:52 pm
|
||||
# Author: Josh.5 (jsunnex@gmail.com)
|
||||
# -----
|
||||
# Last Modified: Friday, 23rd August 2023 4:21:00 pm
|
||||
# Modified By: Josh.5 (jsunnex@gmail.com)
|
||||
###
|
||||
set -e
|
||||
|
||||
# CATCH TERM SIGNAL:
|
||||
_term() {
|
||||
pkill -P $$
|
||||
}
|
||||
for sig in INT QUIT HUP TERM; do
|
||||
trap "
|
||||
_term
|
||||
trap - $sig EXIT
|
||||
kill -s $sig "'"$$"' "$sig"
|
||||
done
|
||||
trap _term EXIT
|
||||
|
||||
|
||||
# RUN CHILD PROCESS
|
||||
"${@}" &
|
||||
proc_pid=$!
|
||||
|
||||
|
||||
# WAIT FOR CHILD PROCESS:
|
||||
wait "$proc_pid"
|
||||
14
overlay/usr/bin/sunshine-stop
Executable file
14
overlay/usr/bin/sunshine-stop
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env bash
|
||||
###
|
||||
# File: sunshine-stop
|
||||
# Project: bin
|
||||
# File Created: Tuesday, 23rd August 2023 3:28:52 pm
|
||||
# Author: Josh.5 (jsunnex@gmail.com)
|
||||
# -----
|
||||
# Last Modified: Friday, 23rd August 2023 4:21:00 pm
|
||||
# Modified By: Josh.5 (jsunnex@gmail.com)
|
||||
###
|
||||
set -e
|
||||
|
||||
# Terminate any running sunshine-run processes:
|
||||
kill $(ps aux | grep -v grep | grep sunshine-run | awk '{print $2}')
|
||||
Reference in New Issue
Block a user