Skip to content

Commit a9fbfcd

Browse files
authored
Merge pull request #2 from diffstorm/fix_run_sh
Fix quoting in run.sh
2 parents dbbcc40 + 9c8cb7d commit a9fbfcd

File tree

1 file changed

+31
-27
lines changed

1 file changed

+31
-27
lines changed

run.sh

+31-27
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,27 @@
33
# processWatchdog application start, watchdog and report script
44
# Copyright (c) 2023 Eray Ozturk <[email protected]>
55

6-
homedir=$(realpath $(dirname "${BASH_SOURCE[0]}"))
6+
homedir=$(realpath "$(dirname "${BASH_SOURCE[0]}")")
77
app=processWatchdog
88
ini=config.ini
99
countf=crash_count
1010
logf=crash_log
1111
RET=1
1212
CURRENTDATE=$(date +"%d-%m-%Y %T")
1313

14-
export _JAVA_OPTIONS=-Duser.home=${homedir}
14+
export _JAVA_OPTIONS="-Duser.home=${homedir}"
1515

16-
logrotate()
16+
logrotate()
1717
{
18-
echo "$(tail -1000 ${homedir}/${logf})" > ${homedir}/${logf}
18+
# Truncate log file to last 1000 lines
19+
tail -1000 "${homedir}/${logf}" > "${homedir}/${logf}.tmp"
20+
mv "${homedir}/${logf}.tmp" "${homedir}/${logf}"
1921
}
2022

2123
exit_normally()
2224
{
2325
msg="$0 exited normally at ${CURRENTDATE}"
24-
echo "$msg" >> ${homedir}/${logf}
26+
echo "$msg" >> "${homedir}/${logf}"
2527
logrotate
2628
echo "$msg"
2729
RET=0 # exit
@@ -31,19 +33,22 @@ exit_crashed()
3133
{
3234
count=0
3335
if [[ -f "${homedir}/${countf}" ]]; then
34-
count=$(cat ${homedir}/${countf})
36+
count=$(cat "${homedir}/${countf}")
3537
fi
36-
echo "$(($count+1))" > ${homedir}/$countf
37-
msg="$0 crashed with return code [$1] at ${CURRENTDATE} [$(cat ${homedir}/${countf})]"
38+
echo "$((count + 1))" > "${homedir}/${countf}"
39+
msg="$0 crashed with return code [$1] at ${CURRENTDATE} [$(cat "${homedir}/${countf}")]"
3840
echo "$msg"
3941
df -h
40-
output=$(echo "$msg" >> ${homedir}/${logf})
42+
43+
# Capture both stdout and stderr when writing to log
44+
output=$(echo "$msg" >> "${homedir}/${logf}" 2>&1)
45+
ret=$?
4146
logrotate
47+
4248
errspace='No space left on device'
43-
if [[ "$output" == *"$errspace"* ]]; then
49+
if [[ $ret -ne 0 && "$output" == *"$errspace"* ]]; then
4450
echo "error: $errspace"
45-
#${homedir}/reset_system.sh & # TODO:
46-
break
51+
# "${homedir}/reset_system.sh" &
4752
fi
4853
RET=1 # re-run the app
4954
}
@@ -52,7 +57,7 @@ exit_restart()
5257
{
5358
msg="$0 exited to be restarted at ${CURRENTDATE}"
5459
echo "$msg"
55-
echo "$msg" >> ${homedir}/${logf}
60+
echo "$msg" >> "${homedir}/${logf}"
5661
logrotate
5762
RET=1 # re-run the app
5863
}
@@ -61,7 +66,7 @@ exit_reboot()
6166
{
6267
msg="$0 exited normally to reboot system at ${CURRENTDATE}"
6368
echo "$msg"
64-
echo "$msg" >> ${homedir}/${logf}
69+
echo "$msg" >> "${homedir}/${logf}"
6570
logrotate
6671
RET=0 # exit
6772
(sleep 2; reboot) &
@@ -70,32 +75,31 @@ exit_reboot()
7075

7176
# Check if a kill parameter is provided
7277
if [ "$1" == "kill" ]; then
73-
process_pid=$(pidof ${app})
78+
process_pid=$(pidof "${app}")
7479
if [ -z "$process_pid" ]; then
75-
echo "Could not find the process ID of $app"
76-
exit 1
80+
echo "Could not find the process ID of $app"
81+
exit 1
7782
fi
78-
process_name=$(ps -p $process_pid -o comm=)
83+
process_name=$(ps -p "$process_pid" -o comm=)
7984
echo "Sending USR1 signal to $process_name (PID: $process_pid)"
80-
kill -SIGUSR1 $process_pid
85+
kill -SIGUSR1 "$process_pid"
8186
exit 0
8287
fi
8388

8489
echo "Starting $0"
8590

86-
while :
87-
do
88-
chmod +x ${homedir}/${app}
89-
${homedir}/${app} -i ${homedir}/${ini}
91+
while :; do
92+
chmod +x "${homedir}/${app}"
93+
"${homedir}/${app}" -i "${homedir}/${ini}"
9094
RET_CODE=$?
9195
CURRENTDATE=$(date +"%d-%m-%Y %T")
9296

9397
RET=1
9498
case $RET_CODE in
95-
0) exit_normally;;
96-
2) exit_restart;;
97-
3) exit_reboot;;
98-
*) exit_crashed $RET_CODE;;
99+
0) exit_normally ;;
100+
2) exit_restart ;;
101+
3) exit_reboot ;;
102+
*) exit_crashed "$RET_CODE" ;;
99103
esac
100104

101105
if [[ $RET -eq 0 ]]; then

0 commit comments

Comments
 (0)