Potrzebujesz pomocy z C, C++, perl, python, itp.
starach
Beginner
Posty: 134 Rejestracja: 08 grudnia 2010, 15:53
Post
autor: starach » 25 lutego 2011, 03:48
Cześć.
Napisałem sobie skrypt do uruchamiania mojego serwera Ventrilo. Napisałem go w notatniku w Windowsie - co samo w sobie może być już zapewne przyczyną błędu - po czym przekopiowałem na serwer. Niestety przy próbie uruchomienia wyskakuje błąd:
Kod: Zaznacz cały
root@debian:/> /etc/init.d/ventrilo.sh status
-bash: /etc/init.d/ventrilo.sh: /bin/sh^M: bad interpreter: No such file or directory
Kod: Zaznacz cały
#! /bin/sh
### BEGIN INIT INFO
# Provides: ventrilo
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop:
# Short-Description: Ventrilo voice comunication server
### END INIT INFO
VENPATH=/home/ventrilo
VENBIN=$VENPATH/ventrilo_srv
case "$1" in
start)
if [ ! -f $VENTBIN.pid ]
then
su ventrilo -c "$VENBIN -f$VENPATH/ventrilo_srv/3784 -d"
renice -5 `cat $VENPATH/ventrilo_srv.pid`
else
echo "[VT] Ventrilo server already running."
fi
;;
stop)
if [ ! -f $VENTBIN.pid ]
then
echo "[VT] Ventrilo server isn't running."
else
echo "[VT] Stopping Ventrilo server."
kill `cat $VENTBIN.pid`
fi
;;
status)
if [ ! -f $VENTBIN.pid ]
then
echo "[VT] Ventrilo server isn't running."
else
cat $VENTBIN.pid
fi
;;
*)
echo "Usage: /etc/init.d/ventrilo {start|stop|status}"
exit 1
esac
exit 0
Jeśli zamienię
też niestety nie chce działać.
NeoN265
Posty: 43 Rejestracja: 16 października 2007, 16:37
Lokalizacja: Bytom
Post
autor: NeoN265 » 25 lutego 2011, 08:09
Strzelam w złe kodowanie.
Kod: Zaznacz cały
-bash: /etc/init.d/ventrilo.sh: /bin/sh^M: bad interpreter: No such file or directory
Jak widać, źle czyta znak nowej linii (^M). Będziesz musiał zapisać plik w innym kodowaniu. Najprościej będzie edytować ten plik pod Linuksem.
ksysinek
Beginner
Posty: 155 Rejestracja: 14 czerwca 2007, 00:33
Lokalizacja: *Miasto know-how
Post
autor: ksysinek » 25 lutego 2011, 08:11
Przyczyną twojego problemu zapewne są znaki końca linii w skrypcie. Te które generuje Windowsowy notatnik przez Linuksa odczytywane są jako ^M. Dlatego system nie może znaleźć basha bo szuka go w /bin/bash^M. Powinien Ci to zasugerować komunikat:
Kod: Zaznacz cały
-bash: /etc/init.d/ventrilo.sh: /bin/sh[B]^M[/B]: bad interpreter: No such file or directory
Otwórz swój skrypt np. w mcedit i pousuwaj znaki z końca linii. Będą podświetlone na czarno.
Edycja :
Eh, spóźniłem się.
Unit
Beginner
Posty: 356 Rejestracja: 27 marca 2007, 09:39
Post
autor: Unit » 25 lutego 2011, 09:07
starach
Beginner
Posty: 134 Rejestracja: 08 grudnia 2010, 15:53
Post
autor: starach » 27 lutego 2011, 08:38
Dziękuję Unit , pomogło. Twoja metoda LordRuthwen , niestety nie zadziałała. Sprawdziłem hexdumpem i nie było tych trzech kolejnych wpisów.
Problem rozwiązany dziękuję.
VMLine
Beginner
Posty: 137 Rejestracja: 28 lutego 2011, 08:44
Lokalizacja: Poznań / Słupsk
Post
autor: VMLine » 28 lutego 2011, 08:52
Nadmienię iż standardy nakazują napisać łącznie
(bez spacji).
Pozdrawiam.