-
Notifications
You must be signed in to change notification settings - Fork 28
Expand file tree
/
Copy pathstop.sh
More file actions
executable file
·77 lines (67 loc) · 3.2 KB
/
Copy pathstop.sh
File metadata and controls
executable file
·77 lines (67 loc) · 3.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#!/bin/bash
#
# NIST-developed software is provided by NIST as a public service. You may use,
# copy, and distribute copies of the software in any medium, provided that you
# keep intact this entire notice. You may improve, modify, and create derivative
# works of the software or any portion of the software, and you may copy and
# distribute such modifications or works. Modified works should carry a notice
# stating that you changed the software and should note the date and nature of
# any such change. Please explicitly acknowledge the National Institute of
# Standards and Technology as the source of the software.
#
# NIST-developed software is expressly provided "AS IS." NIST MAKES NO WARRANTY
# OF ANY KIND, EXPRESS, IMPLIED, IN FACT, OR ARISING BY OPERATION OF LAW,
# INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND DATA ACCURACY. NIST
# NEITHER REPRESENTS NOR WARRANTS THAT THE OPERATION OF THE SOFTWARE WILL BE
# UNINTERRUPTED OR ERROR-FREE, OR THAT ANY DEFECTS WILL BE CORRECTED. NIST DOES
# NOT WARRANT OR MAKE ANY REPRESENTATIONS REGARDING THE USE OF THE SOFTWARE OR
# THE RESULTS THEREOF, INCLUDING BUT NOT LIMITED TO THE CORRECTNESS, ACCURACY,
# RELIABILITY, OR USEFULNESS OF THE SOFTWARE.
#
# You are solely responsible for determining the appropriateness of using and
# distributing the software and you assume all risks associated with its use,
# including but not limited to the risks and costs of program errors, compliance
# with applicable laws, damage to or loss of data, programs or equipment, and
# the unavailability or interruption of operation. This software is not intended
# to be used in any situation where a failure could cause risk of injury or
# damage to property. The software developed by NIST employees is not subject to
# copyright protection within the United States.
APTVARS="NEEDRESTART_MODE=l NEEDRESTART_SUSPEND=1 DEBIAN_FRONTEND=noninteractive"
if ! command -v realpath &>/dev/null; then
echo "Package \"coreutils\" not found, installing..."
sudo env $APTVARS apt-get install -y coreutils
fi
SCRIPT_DIR=$(dirname "$(realpath "$0")")
cd "$SCRIPT_DIR"
# Upon exit, restore the terminal to a sane state
trap 'trap - EXIT SIGINT SIGTERM; stty sane || true; exit' EXIT SIGINT SIGTERM
# Check if the components are already stopped
if ! $(./is_running.sh | grep -q ": RUNNING"); then
./is_running.sh
exit 0
fi
./additional_scripts/stop_xapps.sh
./additional_scripts/stop_grafana_and_python_server.sh
# Send a graceful shutdown signal to the FlexRIC process
sudo pkill -f "[n]earRT-RIC" >/dev/null 2>&1
# Wait for the process to terminate gracefully
COUNT=0
MAX_COUNT=10
sleep 1
while [ $COUNT -lt $MAX_COUNT ]; do
IS_RUNNING=$(./is_running.sh)
if echo "$IS_RUNNING" | grep -q "FlexRIC: NOT_RUNNING"; then
echo "The FlexRIC has stopped gracefully."
./is_running.sh
exit 0
fi
COUNT=$((COUNT + 1))
echo "$IS_RUNNING [$((MAX_COUNT - COUNT + 1))]"
sleep 2
done
# If the process is still running after 20 seconds, send a forceful kill signal
echo "The FlexRIC did not stop in time, sending forceful kill signal..."
sudo pkill -9 -f "[n]earRT-RIC" >/dev/null 2>&1
sleep 2
./is_running.sh