[+] Dodawanie programu do autostartu (bez logowania)
[+] Dodawanie programu do autostartu (bez logowania)
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.
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.
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ć.
Jeśli to skrypt jest możesz nadając mu wcześniej flagę wykonywalności przenieść go /etc/init.d/ wykonać
Kod: Zaznacz cały
update-rc.d skrypt defaults 90
Bardzo prosto robisz taki skrypt.
i wklejasz ten tekst zmieniając ścieżkę dostępu do pliku wykonywalnego programu.
Następnie wykonujesz :
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.
Nie zapomnij o prawidłowej ścieżce do pliku ventrilo_srv.
Kod: Zaznacz cały
su
nano /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
/usr/bin/ventrilo_srv
Kod: Zaznacz cały
su
chmod +x /etc/init.d/ventrilo_srv
update-rc.d ventrilo_srv defaults 90
Można jeszcze prościej, dodając ścieżkę do pliku który chce się uruchamiać do /etc/rc.local.
Kod: Zaznacz cały
su
nano /etc/rc.local
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
su
nano /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
logfile="/var/log/ventrilo_server.log"
lista() {
/usr/bin/ventrilo_srv
}
echo $(lista) >> $logfile
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
nadane i polecenie:wykonane. Niestety po restarcie nadal nie działa.
W pliku rc.local podałem ścieżkę: ponad exit 0. Proszę o dalsze wskazówki.
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
Kod: Zaznacz cały
Prawa dostępu
Kod: Zaznacz cały
update-rc.d
W pliku rc.local podałem ścieżkę:
Kod: Zaznacz cały
/home/[b]użytkownik[/b]1/ventrilo/ventrilo_srv
Albo skrypt albo rc.local. Nie dwa naraz. Usuń wpis w /etc/rc.local. Po za tym co następuje:
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 :
Użyj tego:
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.
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
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
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
Kod: Zaznacz cały
su
update-rc.d ventrilo_srv defaults 90
Kod: Zaznacz cały
su
/etc/init.d/ventrilo_srv
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 
