corrected instant play that could only be launched once
This commit is contained in:
parent
305aa2ba83
commit
5cd95016d9
|
@ -7,6 +7,8 @@ SELF="$(basename ${0})"
|
||||||
INSTANT_PLAY_FILE="/mnt/instant_play"
|
INSTANT_PLAY_FILE="/mnt/instant_play"
|
||||||
RESUME_PLAY_FILE="/mnt/resume_play"
|
RESUME_PLAY_FILE="/mnt/resume_play"
|
||||||
LAST_OPK_FILE="/mnt/last_opk"
|
LAST_OPK_FILE="/mnt/last_opk"
|
||||||
|
PID_PATH="/var/run/pid_path"
|
||||||
|
REBOOTING_FILE="/run/rebooting"
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
>&2 echo "Usage: ${SELF} load"
|
>&2 echo "Usage: ${SELF} load"
|
||||||
|
@ -50,7 +52,7 @@ load)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Unmount last OPK, if any
|
# Unmount last OPK, if any
|
||||||
if [ -r "${LAST_OPK_FILE}" ]; then
|
if [ -r "${LAST_OPK_FILE}" -a ! -f "${REBOOTING_FILE}" ]; then
|
||||||
umount /opk
|
umount /opk
|
||||||
rm "${LAST_OPK_FILE}"
|
rm "${LAST_OPK_FILE}"
|
||||||
fi
|
fi
|
||||||
|
@ -64,23 +66,22 @@ save)
|
||||||
|
|
||||||
# Write quick load file args
|
# Write quick load file args
|
||||||
echo -n "" > "${INSTANT_PLAY_FILE}"
|
echo -n "" > "${INSTANT_PLAY_FILE}"
|
||||||
# First arg is prog name, forcing real path
|
|
||||||
printf "'" >> "${INSTANT_PLAY_FILE}"
|
printf "'" >> "${INSTANT_PLAY_FILE}"
|
||||||
bin_name=$(printf %s "$1" | sed "s/'/'\\\\''/g")
|
# First arg is prog name, forcing real path
|
||||||
bin_path="$(pwd)"/"$(basename "$bin_name")"
|
bin=$(printf %s "$1" | sed "s/'/'\\\\''/g")
|
||||||
|
bin_name=$(basename "$bin")
|
||||||
|
bin_path="$(cat $PID_PATH)"/"$bin_name"
|
||||||
echo -n "$bin_path" >> "${INSTANT_PLAY_FILE}"
|
echo -n "$bin_path" >> "${INSTANT_PLAY_FILE}"
|
||||||
shift
|
|
||||||
printf "' " >> "${INSTANT_PLAY_FILE}"
|
printf "' " >> "${INSTANT_PLAY_FILE}"
|
||||||
|
shift
|
||||||
|
|
||||||
while :
|
while [ "$#" != "0" ]
|
||||||
do
|
do
|
||||||
printf "'" >> "${INSTANT_PLAY_FILE}"
|
printf "'" >> "${INSTANT_PLAY_FILE}"
|
||||||
printf %s "$1" | sed "s/'/'\\\\''/g" >> "${INSTANT_PLAY_FILE}"
|
printf %s "$1" | sed "s/'/'\\\\''/g" >> "${INSTANT_PLAY_FILE}"
|
||||||
shift
|
|
||||||
case $# in 0) break; esac
|
|
||||||
printf "' " >> "${INSTANT_PLAY_FILE}"
|
printf "' " >> "${INSTANT_PLAY_FILE}"
|
||||||
|
shift
|
||||||
done
|
done
|
||||||
printf "'\n" >> "${INSTANT_PLAY_FILE}"
|
|
||||||
|
|
||||||
# Add the magic sauce to launch the process in background,
|
# Add the magic sauce to launch the process in background,
|
||||||
# record the PID into a file, wait for the process to
|
# record the PID into a file, wait for the process to
|
||||||
|
|
|
@ -9,6 +9,7 @@ PID_FILE="/var/run/funkey.pid"
|
||||||
usage() {
|
usage() {
|
||||||
>&2 echo "Usage: ${SELF} record pid"
|
>&2 echo "Usage: ${SELF} record pid"
|
||||||
>&2 echo " ${SELF} erase"
|
>&2 echo " ${SELF} erase"
|
||||||
|
>&2 echo " ${SELF} print"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -40,6 +41,10 @@ case "${1}" in
|
||||||
erase_pid
|
erase_pid
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
print)
|
||||||
|
cat "${PID_FILE}"
|
||||||
|
;;
|
||||||
|
|
||||||
*)
|
*)
|
||||||
usage
|
usage
|
||||||
;;
|
;;
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
|
|
||||||
SELF="$(basename ${0})"
|
SELF="$(basename ${0})"
|
||||||
PID_FILE="/var/run/funkey.pid"
|
PID_FILE="/var/run/funkey.pid"
|
||||||
|
PID_PATH="/var/run/pid_path"
|
||||||
REBOOTING_FILE="/run/rebooting"
|
REBOOTING_FILE="/run/rebooting"
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
|
@ -16,6 +17,11 @@ usage() {
|
||||||
|
|
||||||
schedule_powerdown() {
|
schedule_powerdown() {
|
||||||
|
|
||||||
|
# Save current pid path before closing bin
|
||||||
|
# (won't work if bin is already closed)
|
||||||
|
pid_path=$(dirname $(readlink /proc/$(pid print)/exe))
|
||||||
|
echo -n "$pid_path" > "$PID_PATH"
|
||||||
|
|
||||||
# Send USR1 signal to the running FunKey process to warn about
|
# Send USR1 signal to the running FunKey process to warn about
|
||||||
# impending shutdown
|
# impending shutdown
|
||||||
pkill -USR1 -F "${PID_FILE}" > /dev/null 2>&1
|
pkill -USR1 -F "${PID_FILE}" > /dev/null 2>&1
|
||||||
|
|
Loading…
Reference in New Issue