Admin Bash script

Admin Bash script

Hozzászólások

A problema abban rejlik, hogy a '&' csak a backgroundba tolja a programot, de az meg mindig a scripted gyermeke. Ha egy ilyen start-stop-daemonnal megtoldva inditod, akkor eloszor fork()-ol-> igy az init gyermeke lesz, nem a scriptede) es utana backgroundozik :) Use Google!
[quote:00a745ba64="Tarokkk"]
[code:1:00a745ba64]
function start
{
start-stop-daemon --start --pidfile /GameServer/MOHAA/$SERVER/$SERVER.pid --background --exec nohup /GameServer/MOHAA/$SERVER/spearhead_lnxded +set net_port
$SERVERPORT +exec autostart.cfg &> /GameServer/MOHAA/BHB/running.log
}

function stop
{
getserverpid
if [ "$PID" = "" ]; then
echo "A szerver mar all !!!"
else
start-stop-daemon --stop -retry --pidfile /GameServer/MOHAA/$SERVER/$SERVER.pid
echo "A server leallt !!!"
PID=""
fi
}
[/code:1:00a745ba64]

[quote:73a01993dc="Tarokkk"]Thx. Végre müxik! :lol:

Maskor is ilyen eccerut kerdezz :D

Szal alaphelyzet.

Debian (sid) gépen fut egy Gameserver, aminek a leállítását és futtatását szeretném megírni egy scriptbe, és erre átirányítani a felhasználó shell -jét.
Az alap script meg is lenne, de az a baj ha a felhsznaló kilép [az exit parancs hatására] a őprog futásának vége SSH bezárúl, de amit indított szerver az is leáll. Ezt kéne kiküszöbölni.

[code:1:52c5297e51]
#-----------------------#
#--The--Admin--Script---#
#-----------------------#
#---For-MOHAA-Server----#
#-----------------------#
#---Version:----1.0-----#
#---Made-by-Tarokkk-----#
#-----------------------#

#Valtozok
SERVER="BHB"
SERVERPORT="12206"
#Innentol kezdve ne nyulj bele semmibe ha nem tudod mit csinalsz :)
HEADER="---/----/----/----/----/---
-Menu: -
"
URES=""
#Function
function start
{
nohup /GameServer/MOHAA/$SERVER/spearhead_lnxded +set net_port $SERVERPORT +exec autostart.cfg &> /GameServer/MOHAA/BHB/running.log &
}
function getserverpid
{
for i in $(cat /GameServer/MOHAA/$SERVER/$SERVER.pid);
do
PID=$i
done

}
function quit
{
echo "Viszlat"
exit
}
function statusstart
{
getserverpid
if [ "$PID" = "" ]; then
start
NEWS="1"
else
echo "A server mar fut !!!"
NEWS="0"
fi
}
function stop
{
getserverpid
if [ "$PID" = "" ]; then
echo "A szerver mar all !!!"
else
kill -s 9 $PID
>/GameServer/MOHAA/$SERVER/$SERVER.pid
echo "A server leallt !!!"
PID=""
fi
}
function status
{
getserverpid
if [ "$PID" = "" ]; then
echo "A server jelenleg ALL !!!"
else
echo "A server jelenleg FUT !!!"
fi
}
#Innen az ASCII vizualitas
echo "$HEADER"
#Menu kiirasa
OPTION="START STOP RESTART STATUS HELP EXIT"
select opt in $OPTION; do
if [ "$opt" = "START" ]; then
statusstart
if [ "$NEWS" = "1" ]; then
pidof /GameServer/MOHAA/$SERVER/spearhead_lnxded +set net_port $SERVERPORT +exec autostart.cfg &>/GameServer/MOHAA/$SERVER/$SERVER.pid
echo "A szerver elindult !!!"
else
echo "Nincs uj futtatas !!!"
fi
elif [ "$opt" = "STOP" ]; then
stop
elif [ "$opt" = "RESTART" ]; then
stop
start
pidof /GameServer/MOHAA/$SERVER/spearhead_lnxded +set net_port $SERVERPORT +exec autostart.cfg &>/GameServer/MOHAA/$SERVER/$SERVER.pid
elif [ "$opt" = "STATUS" ]; then
status
elif [ "$opt" = "HELP" ]; then
echo Under
elif [ "$opt" = "EXIT" ]; then
quit
else
echo "A menu hasznalata a menu elott talalhato szammal mukodik // Tovabbi segitseg 5 -os menu!"
fi
done
[/code:1:52c5297e51]