Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: mimik007 03 Února 2012, 12:21:30
-
Zdravím,
Mám jeden problém. Nainštaloval som CS server na Linuxe (Debian) ale tak ohľadom toho scriptu by malo byť to isté ako ubuntu. Inak všetko pekne ide, len potreboval by som, aby servery išli stále dajme tomu aj po reštarte ak VPS sa reštartne, aby to nabootovalo ten spúšťací súbor.
Skúšal som to v súbore pridať bootmisc.sh - nakoniec som pridal
cd /home/27016
./start.sh
ale nefičí to, isto sa to zapisuje do teho súboru ?, inak upozorním nieje to pipni ..
Ale ak sa nachádzam v zložke 27016 .. a tam dam spustiť ./start.sh tak všetko ide.
súbor start.sh vypadá takto, či nieje náhodou zle udaná cesta abo čo:
cd "/home/27016/"
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.
./hlds_run -game cstrike -pingboost 2 +sv_lan 0 +ip mojaipecka +port 27016 +maxplayers 20 +map de_dust2 +log on -master -noipx -secure &
Prosím nepíšte, že nájdi si na googli, bo už som hľadal od včera, len nejak to nemôžem rozchodiť ..
S pozdravom mimik
-
V tom souboru bootmisc.sh máš na začátku toto?
#!/bin/sh
cd /home/27016
./start.sh
Způsobů je celá řada, od etc/init.d až po rc.local. O tom souboru, co píšeš, jsem ještě neslyšel, ale vidím, že ho někdo používá
http://www.abclinuxu.cz/poradna/linux/show/243758 (http://www.abclinuxu.cz/poradna/linux/show/243758)
http://forum.debian-linux.cz/index.php?topic=588.0 (http://forum.debian-linux.cz/index.php?topic=588.0)
-
j mal som aj toto, ale stále nenabehne.
Uvediem tu jeden príklad, či to tak má byť abo prečo to robí:
Nachádzam sa v zložke, kde spúsťam script
Keď je zadaný takto ide:
súbor: start.sh a spúšťam ho v zložke 27016 cez príkaz: "./start.sh"
FUNGUJE
cd "/home/27016/"
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.
./hlds_run -game cstrike -pingboost 2 +sv_lan 0 +ip mojaipecka +port 27016 +maxplayers 20 +map de_dust2 +log on -master -noipx -secure &
Akonáhle tam pridám #!/bin/sh, NEJDE !!
NEFUNGUJE
#!/bin/sh
cd "/home/27016/"
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.
./hlds_run -game cstrike -pingboost 2 +sv_lan 0 +ip mojaipecka +port 27016 +maxplayers 20 +map de_dust2 +log on -master -noipx -secure &
a vypíše chybu: "-bash: ./start.sh: /bin/sh^M: bad interpreter: No such file or directory"
Už ma z toho asi šľak trafí .. :-\
-
Mně se na Debianu osvědčilo po bootu spouštět skripty přes update-rc.d (vše dělat jako root):
- nakopíruju skript do /etc/init.d (např. /etc/init.d/muj_skript)
- poté zadám update-rc.d muj_skript defaults
a pak buď po zadání /etc/init.d/muj_skript start
nebo po rebootu už skript jede po nabootování systému.
Jinak v tom tvém skriptu na začátku bych zkusil přidat pod to #!/bin/sh ještě toto: PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
Tím se jasně definuje cesta, kde se má sh hledat na spuštění. Snad to pomůže.
-
Ja už nemám nato nervy, keby to VPSko je primne taku jebnem doňho, že sa rozletí na x častí.
Už 2 dni to rieším a stále nič omg
no dám ti postup čo som presne spravil
1.Vytvoril som textovy subor dal nazov mojskript.sh
2.Doňho som hodil
#!/bin/sh
PATH=/sbin:/usr/sbin:/bin:/usr/bin
cd "/home/27015/"
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.
./hlds_run -game cstrike -pingboost 2 +sv_lan 0 +ip 31.31.78.13 +port 27015 +maxplayers 20 +map de_inferno +log on -master -noipx -secure &
3.Nastavil som chmod na 755
4.Spustil som príkaz update-rc.d mojskript defaults
5.Vypísalo mi chybu:
update-rc.d mojskript defaults
update-rc.d: using dependency based boot sequencing
update-rc.d: error: unable to read /etc/init.d/mojskript
6.Kopol som väčším tlakom do bedne
7.Chystám vyvynuť väčší tlak na bedňu
ooomg ma z teho posratého linuxu raz ebne ..
Tu na fóre ste asi moja posledná šanca, žeby som to rozchodil ;)
btw: Na free pipni.cz som robil testy a tam mi to ide, ale tam je Ubuntu. A teraz mám Debian 6 (najnovšiu verziu), 64bit
-
Otázka ešte ako spustím ten script ak som v root zložke, nie v tej 27016.
Bo si myslím, že najskôr bude chyba tu
-
-bash: ./start.sh: /bin/sh^M: bad interpreter: No such file or directory
To zní jako kdybys to editoval ve windows, máš pokaženej konec řádku. Udělej to v linuxu (použij třeba nano) a bude to ok.
-
j robil som to vo windowse, no vyskúšam teda v linuxe
ale môj veľký problém je prečo nejde spustiť hlds_run v iných zložkách ???
ak sa nachádzam v zložke 27016 kde je súbor umiestnený tak ide:
príkaz:
./hlds_run -game cstrike ... atď ...
ale akonáhle sa nachádzam v inej zložke napr. v hlavnej root
a spustím:
/home/27016/./hlds_run -game cstrike ... atď ...
tak NEJDE ! vypíše invalid game cstrike .. toto je priamy script, ale keď som chcel spustiť súbor start.sh z inej zložky tak nechcelo tiež, ale ani priamy script na súbor nechcelo čo je hore ..
-
V tom skriptu se zřejmě počítá že určité soubory jsou v aktuální složce. Prostě do toho rc.local nebo kam to dáš se nejdřív přesuň do adresáře
...
cd /home/27016/
./hlds_run -game cstrike ... atď ...
...
-
to som taktiež skúšal, ale je to bez odozvy, nič sa nespustí ..
-
a už jsi opravil ten konec řádku?
-
čiže je to opravené, som to spravil cez nano ako si radil, funguje už z hocijakej zložky, teraz mi treba ešte spraviť, aby to automaticky spustilo ..
// Edit
Už to všetko fičí KONEČNE ! :-), ale musel som do scriptu umiestniť ešte
#! /bin/sh
### BEGIN INIT INFO
# Provides: script
# Required-Start: $remote_fs $syslog $all
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop:
# Short-Description: Run /etc/script if it exist
### END INIT INFO
Diky, pekne všetkým za pomoc. K+