Strona 1 z 1
[+] Dodawanie programu do autostartu (bez logowania)
: 16 kwietnia 2011, 09:01
autor: cycjusz
Witam.
Chcę dodać program do uruchamiania się podczas startowania systemu, ale nie mam pojęcia jak się do tego zabrać. Czytałem sporo w internecie, niestety, nie wyciągnąłem z tego czytania żadnej nauki. Posiadam serwer, na którym chcę, aby uruchamiał się po restarcie ventrilo_srv, bez logowania. Do serwera ma dostęp większa ilość osób i jest on niekiedy restartowany, dlatego potrzebuję konkretny opis jak dodać ten program.
Proszę o pomoc i pozdrawiam.
: 16 kwietnia 2011, 09:20
autor: DaVidoSS
Sposobów jest wiele zależy co i jak chcesz uruchamiać.
Jeśli to skrypt jest możesz nadając mu wcześniej flagę wykonywalności przenieść go /etc/init.d/ wykonać
Jeśli to nie skrypt to możesz takowy utworzyć.
: 16 kwietnia 2011, 09:27
autor: cycjusz
No właśnie, skrypt jako taki to to nie jest, a jest to zwykły program, który chcę uruchamiać poprzez program screen. Mógłbyś mnie nakierować jak skrypt bash utworzyć? Łopatologia mile widziana.
: 16 kwietnia 2011, 09:50
autor: DaVidoSS
Bardzo prosto robisz taki skrypt.
i wklejasz ten tekst zmieniając ścieżkę dostępu do pliku wykonywalnego programu.
Kod: Zaznacz cały
#! /bin/sh
### BEGIN INIT INFO
# Provides: ventrilo_srv
# Required-Start: $remote_fs $syslog $all
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Ventrilo server run
### END INIT INFO
/usr/bin/ventrilo_srv
Następnie wykonujesz :
Kod: Zaznacz cały
su
chmod +x /etc/init.d/ventrilo_srv
update-rc.d ventrilo_srv defaults 90
Drugi sposób:
Można jeszcze prościej, dodając ścieżkę do pliku który chce się uruchamiać do /etc/rc.local.
Dodaj ścieżkę do pliku powyżej exit 0.
Są to proste sposoby uruchomienia programu bez logowania się w systemie. Jednakże tak uruchomiony program jest uruchamiany z konta root co myślę w przypadku serwera ventrilo powinno właśnie mieć miejsce, będąc jednakowoż usługą systemową.
Minusem takich praktyk jest brak wglądu na zdarzenia podczas pracy programu w przypadku gdy dany program nie serwuje logów.
Można to obejść i uzyskać log w /var/log/ventrilo_server.log, za pomocą naszego skryptu /etc/init.d/ventrilo_srv odpowiednio go zmieniając.
Kod: Zaznacz cały
#! /bin/sh
### BEGIN INIT INFO
# Provides: ventrilo_srv
# Required-Start: $remote_fs $syslog $all
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Ventrilo server run
### END INIT INFO
logfile="/var/log/ventrilo_server.log"
lista() {
/usr/bin/ventrilo_srv
}
echo $(lista) >> $logfile
Nie zapomnij o prawidłowej ścieżce do pliku ventrilo_srv.
: 16 kwietnia 2011, 14:43
autor: cycjusz
Nie wiem, coś mi cały czas nie wychodzi. Ścieżka do programu wykonywalnego to /home/
użytkownik1/ventrilo/ventrilo_srv.
Kod z /etc/init.d/ventrilo_srv
Kod: Zaznacz cały
#! /bin/sh
### BEGIN INIT INFO
# Provides: ventrilo_srv
# Required-Start: $remote_fs $syslog $all
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Ventrilo server run
### END INIT INFO
/home/user1/ventrilo/ventrilo_srv
nadane i polecenie:
wykonane. Niestety po restarcie nadal nie działa.
W pliku rc.local podałem ścieżkę:
Kod: Zaznacz cały
/home/[b]użytkownik[/b]1/ventrilo/ventrilo_srv
ponad exit 0. Proszę o dalsze wskazówki.
: 16 kwietnia 2011, 21:50
autor: DaVidoSS
Albo skrypt albo rc.local. Nie dwa naraz. Usuń wpis w /etc/rc.local. Po za tym co następuje:
Kod: Zaznacz cały
cd ~/
su
mv ventrilo /usr/lib/
chown -Rv root:root /usr/lib/ventrilo
chmod +x /usr/lib/ventrilo/ventrilo_srv
exit
Zakładam że plik konfiguracyjny ventrilo_srv.ini znajduje się w katalogu /usr/lib/ventrilo
Twój skrypt uruchamiający /etc/init.d/ventrilo_srv :
Kod: Zaznacz cały
su
update-rc.d ventrilo_srv remove
nano /etc/init.d/ventrilo_srv
Użyj tego:
Kod: Zaznacz cały
#! /bin/sh
### BEGIN INIT INFO
# Provides: ventrilo_srv
# Required-Start: $remote_fs $syslog $all
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Ventrilo server run
### END INIT INFO
cd /usr/lib/ventrilo
./ventrilo_srv
Po tym zabiegu zrób test:
istotne w sprawie będzie co konsola odpowie . Jak zobaczysz na końcu tego co zwraca konsola - "READY" to znaczy ze działa. Poprzez to polecenie co właśnie wykonałeś uruchamiasz program ręcznie.
: 17 kwietnia 2011, 10:43
autor: cycjusz
DaVidoSS, naprawdę dziękuję za zaangażowanie i pomoc w moim problemie. Zadziałało. Nie wiem jak mam koledze dziękować. W każdym bądź razie jeszcze raz dziękuję!
: 17 kwietnia 2011, 11:02
autor: DaVidoSS
E tam, nie ma za co dziękować. Zadziałało bo musi. Pomyśl o logach dla tego programu bo jak będzie się coś działo złego nie będziesz wiedział co!
: 18 kwietnia 2011, 00:08
autor: cycjusz
Tzn. o logach pomyślał już twórca ventrilo_srv, a mianowicie znajdują się one głównym folderze programu. A wątpię, aby coś się działo niedobrego, ponieważ serwer jest właściwie prywatny i raczej żadnego ataku się nie spodziewam, a wersja ventrilo_srv jest stabilna na tyle, że nie powinna wywalać błędów. Jeszcze raz dziękuję Tobie za pomoc
