ddebny Napisano Luty 5, 2016 Zgłoszenie Share Napisano Luty 5, 2016 W /etc/inid.d dodałem skrypt test Następnie sprawdziłem runlevel i działam na N3 tak więc to /etc/rc.3 dodałem symlink do /etc/init.d/test Zrobiłem oczywiście chmod +x dla /etc/inid.d/test Po restarcie komputera skrypt nie działa. Nie mam pojęcia dlaczego. Pracuję na Fedora 21 Czy wszystko zrobiłem poprawnie? Skrypt wymaga sudo, gdy odpalam go ręcznie. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@WalDo Napisano Luty 5, 2016 Zgłoszenie Share Napisano Luty 5, 2016 /etc/rc.3? Jeśli w ogóle, to /etc/rc.d/rc3.d Sprawdziłeś jak wygląda link? Lepiej robić na "prawdziwych" katalogach niż na linkach do nich a /etc/init.d to symboliczny link do /etc/rc.d/init.d Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
SeeM Napisano Luty 7, 2016 Zgłoszenie Share Napisano Luty 7, 2016 Czy wszystko zrobiłem poprawnie? Skrypt wymaga sudo, gdy odpalam go ręcznie. Tu może być problem. Upewnij się, że ścieżki, w których uruchamiany program coś zapisuje mają uprawnienia do zapisu. Też sobie kiedyś dodałem skrypt zmieniający pliki w /etc i nie działał. Przerobiłem go na zmienianie plików w /tmp i było w porządku. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Miszcz Napisano Luty 7, 2016 Zgłoszenie Share Napisano Luty 7, 2016 Nie wiem czemu nikt o tym nie mówi, ale od jakiegoś już czasu domyślnym sposobem na zarządzanie usługami w Fedorze jest Systemd. Odpowiada on za uruchamianie, wyłączanie i generalne zarządzanie usługami systemowymi. Sposób, który @ddebny wykorzystujesz jest przestarzały i nie powinien już być wykorzystywany. Jednak systemd jest kompatybilne wstecz, wiec na upartego możesz to zrobić "starym" ( depracated ) sposobem. W samej Fedorze znajdziesz więcej informacji na ten temat: cat /etc/init.d/README. Tyle w kwest teorii. Dodanie skryptu do systemd metodą sysvinit: root# touch /etc/init.d/test # tworzymy plik - skrypt root# printf '#!/bin/bash\necho "Systemd uruchomil skrypt!"' > /etc/init.d/test # dodajemy zawartość root# chmod +x /etc/init.d/test # nadajemy !!przykładowe!! prawa root# systemctl daemon-reload # każemy systemd przeładować konfigurację root# systemctl status test.service # sprawdzamy czy systemd widzi plik Loaded: loaded (/etc/rc.d/init.d/test) # loaded oznacza, że usługa została wykryta root# systemctl start test.service # jeżeli systemd widzi usługę nie pozostaje nic jak ją uruchomić root# systemctl status test.service # ... oraz sprawdzić jej wyjście test.service - (null) Loaded: loaded (/etc/rc.d/init.d/test) Active: active (exited) since Sun 2016-02-07 11:31:55 CET; 4s ago Docs: man:systemd-sysv-generator(8) Process: 29004 ExecStart=/etc/rc.d/init.d/test start (code=exited, status=0/SUCCESS) Feb 07 11:31:55 pc2.home systemd[1]: Starting (null)... Feb 07 11:31:55 pc2.home test[29004]: Systemd uruchomil skrypt! # jak widać standardowe wyjście skryptu jest widoczne w logach systemd Feb 07 11:31:55 pc2.home systemd[1]: Started (null). root# systemctl enable test.service # włączamy uruchamianie usługi wraz ze startem systemu (patrz post niżej) Jeżeli skrypt dalej nie będzie działać to znaczy, że może być on blokowany przez coś innego w systemie np. SELinux, firewall, lub nawet sudo.W tym wypadku pozostaje debugowanie. Można to zrobić na kilka sposobów w zależności od użytego języka, ale to już inna bajka.Jeżeli twój skrypt nie zwraca żadnych informacji debugujących(chociaż kody wyjścia), tzn., że jest źle napisany. 1 Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@WalDo Napisano Luty 7, 2016 Zgłoszenie Share Napisano Luty 7, 2016 @Miszcz co do meritum masz rację, ale w Fedorze 21 - do obecnych wydań zresztą - jeszcze powinny chyba mimo wszystko działać skrypty z init.d. Ale mam pytanie czy to co napisałeś działa u Ciebie? Bo u mnie [root@localhost ~]# cat /etc/init.d/abc #!/bin/bash echo "test" > /tmp/abc.log echo "działa" [root@localhost ~]# systemctl start abc [root@localhost ~]# systemctl status abc ● abc.service - (null) Loaded: loaded (/etc/rc.d/init.d/abc) Active: active (exited) since nie 2016-02-07 18:57:09 CET; 4s ago Docs: man:systemd-sysv-generator(8) Process: 1792 ExecStart=/etc/rc.d/init.d/abc start (code=exited, status=0/SUCCESS) lut 07 18:57:09 localhost.localdomain systemd[1]: Starting (null)... lut 07 18:57:09 localhost.localdomain abc[1792]: działa lut 07 18:57:09 localhost.localdomain systemd[1]: Started (null). Za to enable: [root@localhost init.d]# systemctl enable abc abc.service is not a native service, redirecting to systemd-sysv-install Executing /usr/lib/systemd/systemd-sysv-install enable abc usługa abc nie obsługuje chkconfig [EDIT]Już sobie przypomniałem. I to być może jest rozwiązanie problemu @ddebny. Do skryptu trzeba dodać linijkę w stylu # chkconfig: - 345 90 pomimo, że to komentarz, to chkconfig z tego korzysta do określenia na jakim runlevel ma wykonać skrypt.Poza tym linki w /etc/rcX.d powinny zaczynać się od S (startowe) lub od K (wykonywane na zamknięcie) a potem powinna następować liczba która decyduje o kolejności wykonywania. Stare dzieje, wieki już tego nie robiłem. 1 Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Miszcz Napisano Luty 8, 2016 Zgłoszenie Share Napisano Luty 8, 2016 Haha, oj powiem szczerze, że tylko enable nie chciało mi się już sprawdzić, ale tak podejrzewałem, że może być. (btw. dlaczego w codeboxie ignorowane jest formatowanie użytkownika, np. przekreślenie tekstu, pogrubienie?). Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
morg Napisano Czerwiec 9, 2017 Zgłoszenie Share Napisano Czerwiec 9, 2017 Cześć, Mam ten sam problem - startowanie sieci mi nie działa. A sposób opisany przez WalDo u mnie zadziałał tylko przy pierwszym restarcie. Znalazłem coś takiego https://www.tecmint.com/create-new-service-units-in-systemd/ Będę sprawdzał w niedziele u żony w pracy czy się Neostrada podniesie po restarcie. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
SeeM Napisano Czerwiec 11, 2017 Zgłoszenie Share Napisano Czerwiec 11, 2017 Dnia 9.06.2017 o 23:32, morg napisał: Cześć, Mam ten sam problem - startowanie sieci mi nie działa. A sposób opisany przez WalDo u mnie zadziałał tylko przy pierwszym restarcie. Znalazłem coś takiego https://www.tecmint.com/create-new-service-units-in-systemd/ Będę sprawdzał w niedziele u żony w pracy czy się Neostrada podniesie po restarcie. To dobry tekst. W szczególności ten fragment: Nic trudnego, prawda? Jest to dokładnie wszystko, co trzeba wpisać do pliku service. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
morg Napisano Czerwiec 15, 2017 Zgłoszenie Share Napisano Czerwiec 15, 2017 Po restarcie maszyny interface ppp0 włącza się na kilka sekund i ... się rozłącza. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się