The service should write its process ID (PID) to a file in a known location. A lot of processes create a file in /var/run called PROGRAM.pid where PROGRAM is the same name as the service.
With that information we see if the service is running, attempt to kill it, wait to see if it dies and then we can move on.
Code:
# This has not been tested.
myservice=PROGNAME
pidfile=/var/run/$myservice.pid
if [ -e $pidfile ]; then
myservicepid=$(cat $pidfile)
# Kill service
kill $myservicepid
for (( i=0; $i < 10; ++$i )) ; do
# Wait for it to end.
status=$(ps h -o cmd -p $myservicepid)
if [ $status == "" ]; then
# The process has terminated.
break
fi
sleep 6
done
# How did every thing go?
if [ $status != "" ]; then
# Can't stop it, give up.
echo "Error: can not halt $myservice, PID=$myservicepid"
echo
exit 1
fi
fi
When a service starts it should also check for the PID file because the process may already be running. If the file doesn't exist it can start. Upon starting it should create the PID file.
What happens in between stopping and starting can be done at your leisure. Just what is the purpose of moving the application? Every other app in Linux is restarted in place.
Hi guys
I have a shell script that executes sql statemets and sends the output to a file.the script takes in parameters executes sql and sends the result to an output file.
#!/bin/sh
echo " $2 $3 $4 $5 $6 $7
isql -w400 -U$2 -S$5 -P$3 << xxx
use $4
go
print"**Changes to the table... (0 Replies)
How to I put my find command string into a script. It is currently to long to be entered manually at command line.
for FNAME in `find /unixsxxx/interface/x.x/xxxxxx -type f \( -name '*.KSH' -o -name '*.sh' -o -name '*.sql' -o -name '*.ksh' \) -exec grep -il xxx.xxx.xxx.xxx {} \;`; do C=`grep -c... (1 Reply)
Hi,
Am very new to scripting and yet to start learning... I need a help to create a script which should run in my unix boxes to acheive the following...
1. Need to copy the hosts file and save it as hostDDMMYYY
2. Should comment a line which matches the string cmpd
3. Should add a new... (5 Replies)
Hi everybody :( :confused: :D,
I need someone to help me! I have a file with 4 colunms and I would like to transform only the 4th colunm by multiplying this by a constant value (i.e 0.3047). I'm a new one using/creating basic scripts and I'm using linux redhat.
The file has the following... (1 Reply)
first off let me introduce myself. My name is Eric and I am new to linux, I am taking an advanced linux administration class and we are tasked with creating a script to add new users that anyone can run, has to check for the existence of a directory. if the directory does not exist then it has... (12 Replies)
I am currently running 2 scripts to gather data for a 3rd script and would like to combine the 2 scripts into one. Having issues with the final output format.
Note cannot post URL so replaced the http stuff with (name) in the examples
All scripts contain #!/bin/ksh OS = Red Hat Enterprise... (0 Replies)
I need to write a bash script that will generate another bash script. Furthermore, the child script is required to be hard-coded into the parent script. The parent script is not allowed to import the child script from an external file at run time. If you have a better solution than the... (3 Replies)
Hi
I have a bash script which takes parameters
sh /tmp/gdg.sh -b BASE-NAME -n 1 -s /source/data -p /dest/data/archive -m ARC
gdg.sh will scan the /source/data and will move the contents to /dest/data/archive after passing through some filters. Its working superb from bash
I have... (0 Replies)
Hi All,
I have a script which intends to create as many variables at runtime, as the number of parameters passed to it. The script needs to save these parameter values in the variables created and print them
abc.sh
----------
export Numbr_Parms=$#
export a=1
while
do
export... (3 Replies)
Discussion started by: dev.devil.1983
3 Replies
LEARN ABOUT X11R4
service
SERVICE(8) System Manager's Manual SERVICE(8)NAME
service - run a System V init script
SYNOPSIS
service SCRIPT COMMAND [OPTIONS]
service --status-all
service --help | -h | --version
DESCRIPTION
service runs a System V init script or systemd unit in as predictable an environment as possible, removing most environment variables and
with the current working directory set to /.
The SCRIPT parameter specifies a System V init script, located in /etc/init.d/SCRIPT, or the name of a systemd unit. The existence of a
systemd unit of the same name as a script in /etc/init.d will cause the unit to take precedence over the init.d script. The supported val-
ues of COMMAND depend on the invoked script. service passes COMMAND and OPTIONS to the init script unmodified. For systemd units, start,
stop, status, and reload are passed through to their systemctl/initctl equivalents.
All scripts should support at least the start and stop commands. As a special case, if COMMAND is --full-restart, the script is run twice,
first with the stop command, then with the start command.
service --status-all runs all init scripts, in alphabetical order, with the status command. The status is [ + ] for running services, [ - ]
for stopped services and [ ? ] for services without a status command. This option only calls status for sysvinit jobs.
EXIT CODES
service calls the init script and returns the status returned by it.
FILES
/etc/init.d
The directory containing System V init scripts.
/{lib,run,etc}/systemd/system
The directories containing systemd units.
ENVIRONMENT
LANG, LANGUAGE, LC_CTYPE, LC_NUMERIC, LC_TIME, LC_COLLATE, LC_MONETARY, LC_MESSAGES, LC_PAPER, LC_NAME, LC_ADDRESS, LC_TELEPHONE, LC_MEA-
SUREMENT, LC_IDENTIFICATION, LC_ALL, TERM, PATH
The only environment variables passed to the init scripts.
SEE ALSO
/etc/init.d/skeleton
update-rc.d(8)init(8)invoke-rc.d(8)systemctl(1)AUTHOR
Miloslav Trmac <mitr@redhat.com>, Petter Reinholdtsen <pere@hungry.com>
Licence: GNU Public Licence v2 (GPLv2)
COPYRIGHT
2006 Red Hat, Inc., Petter Reinholdtsen <pere@hungry.com>
Jan 206 SERVICE(8)