Created
January 6, 2022 11:40
-
-
Save hatakawas/1d61b41771d4f56d5e79a824bc5f0f2e to your computer and use it in GitHub Desktop.
Init script for java application.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# | |
# init script for a Java application | |
# | |
# Check the application status | |
# | |
# This function checks if the application is running | |
check_status() { | |
# Running ps with some arguments to check if the PID exists | |
# -C : specifies the command name | |
# -o : determines how columns must be displayed | |
# h : hides the data header | |
s=`ps -C 'java -jar /path/to/application.jar' -o pid h` | |
# If somethig was returned by the ps command, this function returns the PID | |
if [ $s ] ; then | |
return $s | |
fi | |
# In any another case, return 0 | |
return 0 | |
} | |
# Starts the application | |
start() { | |
# At first checks if the application is already started calling the check_status | |
# function | |
check_status | |
# $? is a special variable that hold the "exit status of the most recently executed | |
# foreground pipeline" | |
pid=$? | |
if [ $pid -ne 0 ] ; then | |
echo "The application is already started" | |
exit 1 | |
fi | |
# If the application isn't running, starts it | |
echo -n "Starting application: " | |
# Redirects default and error output to a log file | |
java -jar /path/to/application.jar >> /path/to/logfile 2>&1 & | |
echo "OK" | |
} | |
# Stops the application | |
stop() { | |
# Like as the start function, checks the application status | |
check_status | |
pid=$? | |
if [ $pid -eq 0 ] ; then | |
echo "Application is already stopped" | |
exit 1 | |
fi | |
# Kills the application process | |
echo -n "Stopping application: " | |
kill -9 $pid & | |
echo "OK" | |
} | |
# Show the application status | |
status() { | |
# The check_status function, again... | |
check_status | |
# If the PID was returned means the application is running | |
if [ $? -ne 0 ] ; then | |
echo "Application is started" | |
else | |
echo "Application is stopped" | |
fi | |
} | |
# Main logic, a simple case to call functions | |
case "$1" in | |
start) | |
start | |
;; | |
stop) | |
stop | |
;; | |
status) | |
status | |
;; | |
restart|reload) | |
stop | |
start | |
;; | |
*) | |
echo "Usage: $0 {start|stop|restart|reload|status}" | |
exit 1 | |
esac | |
exit 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment