webForumDet fria alternativet

kontrollera om program är startat

3 svar · 379 visningar · startad av prey

preyMedlem sedan jan. 2002341 inlägg
#1

#!/bin/sh
#
# This file shoud be located in your init.d directory (e.g. /etc/rc.d/init.d).
# From there you should make symbolic links in your rc#.d dirs to this file,
# Typically rc2.d or rc3.d is used in /etc/rc.d/rc#.d/ or /etc/rc#.d
#
# Symbolic links are made like this:
# cd /etc/rc.d/rc3.d
# ln -s ../init.d/mysqld S99mysqld
#

case "$1" in
start)
echo -n "Starting MySQL-deamon: "
/usr/local/mysql/bin/mysqld_safe --user=*****--pid-file=/*****/mysql.pid &
;;
stop)
echo -n "Shutting down MySQL-deamon: "
MYSQLPID=`cat /*****/mysql.pid`
#kill $MYSQLPID
echo "dödar $MYSQLPID"
;;
restart)
echo "Restarting MySQL-deamon: "
service mysqld stop
service mysqld start
;;
*)
echo "Usage: mysqld {start|stop|restart}"
exit 1
esac

exit 0

Hur ska jag skriva under "stop" sectionen, så att kommandot "kill" inte utförs om mysqld inte är igång? Jag vill ju inte råka döda något annat prog bara för det har samma pid som mysql hade sist det var startat..

GaqziMedlem sedan aug. 2002224 inlägg
#2

du kan ju alltid efter att du lyckats utföre stoppningen ta bort pid filen. :)

preyMedlem sedan jan. 2002341 inlägg
#3

det var inte riktigt så jag mena.

Efter att man stängt ner mysql ligger pid-filen kvar. När man senare startar ett annat prog, kanske det får det pid# som av en händelse står i mysql.pid, vilket är mindre bra. Jag antar dock att man måste ha startat om datorn först, eftersom att pid#en bara ökar hela tiden. Hittade dock en lösning genom att använda mig av kommandot "pidof -s mysqld" tillsammans med en if-sats.

GaqziMedlem sedan aug. 2002224 inlägg
#4

jo ifall du tar bort filen rm <fil> eller så kan du ju alltid tömma den
echo > <fil>

138 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)