Gå til innhold

Få programmer til å starte ved oppstart av maskinen


Anbefalte innlegg

Hei!

 

Jeg har satt opp en maskin med Ubuntu Server 6.10. Jeg har lagt inn FTP (vsftpd) og CS-server. Men jeg vil at disse to skal starte opp i det ubuntu booter. Slik som det er nå så må jeg jo gå inn og starte både FTP-en, og CS-serveren mauelt.

 

har to kjappe spørsmål til! første er, hva er det jeg må skrive for å få opp en liste av alle prosesser som kjører på maskinen, sånn at jeg kan kille de med pid nummeret..

 

og hvordan får jeg CS-serveren til å starte opp i bakgrunn, når den starter så får jeg ikke gjort noe annet på maskinen uten å måtte lukke den? Nå bruker jeg følgende kommando for å starte serveren:

./hlds_run -console -port 27015 -game cstrike +map de_dust2 +maxplayers 10
Lenke til kommentar
Videoannonse
Annonse

ja. rc.local. men ikke glem & bak. ellers tror jeg systemet stopper opp der. for å liste alle prosesser skriver du

ps aux

. for bare vise navngitte prosesser skriver du

ps aux|grep firefox

. for å vise hva som tar opp cpu og lign. kan du bruke

top

Lenke til kommentar

I oppstarten av et system kjører Ubuntu et sett med skripts som ligger i /etc/init.d/ ..

 

Der ligger det et "skjelett", (tror den heter skeleton), dette er et eksempel på et skript. Du kopierer den til det skriptnavnet du vil ha (eks):

sudo cp -v /etc/init.d/skeleton /etc/init.d/hlds

 

Dette vil lage en ny fil med navn "hlds" og er en kopi av "skeleton", så kan du editere denne filen til ditt formål:

sudo nano -w /etc/init.d/hlds

 

Evt. lage et skript noe alla dette:

 

#! /bin/sh
### BEGIN INIT INFO
# Provides: hlds
# Description: Starts the hlds daemon
### END INIT INFO
#
# Author: xxx
#
# Version: 1
#

test -s /etc/rc.status && . /etc/rc.status && rc_reset

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/us r/sbin:/usr/bin
NAME=hlds_run
USER=(brukernavn som skriptet skal kjøres via)
DAEMON=/usr/bin/$NAME
SCRIPTNAME=/etc/init.d/$NAME

# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0

case "$1" in
start)
su - $USER -c "$DAEMON -console -port 27015 -game cstrike +map de_dust2 +maxplayers 10"
;;
stop)
killall hlds_run
;;
reload)
killall hlds_run
su - $USER -c "$DAEMON -d"
;;

esac

exit 0

 

Dette er bare et eksempel, men det vil kanskje hjelpe? Husk å forandre "USER" til brukernavnet du skal kjøre skriptet som (helst en annen enn root).

 

Så må du lage filen "kjørbar"

 

sudo chmod +x /etc/init.d/hlds

 

da kan du kjøre kommandoene "hlds start/stop/reload" for å gjøre de forskjellige tingene.

 

Deretter må du sette opp når dette skriptet skal starte i bootup-prosessen, denne burde starte på slutten av oppstartsprosessen.

Du lager en symlink til skriptet:

 

sudo ln -s /etc/init.d/hlds /etc/rc2.d/S99hlds
sudo ln -s /etc/init.d/hlds /etc/rc0.d/K99hlds
sudo ln -s /etc/init.d/hlds /etc/rc6.d/K99hlds

 

Filene må ha spesielle navn for å starte riktig i forhold til bootup osv.

Filene i rc2.d kjøres ved oppstart, rc0.d kjøres ved shutdown og rc6.d kjøres ved reboot.

 

Håper dette fungerer, det ble litt lengre post enn jeg hadde tenkt..

 

EDIT: Dette tror jeg er den tryggeste måten å kjøre en prosess på i oppstarten.

Endret av snabelkost
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...