[solved] Uruchomienie skryptu z prawami administratora, wraz z uruchomieniem systemu

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
Awatar użytkownika
shani
Sędziwy Jeż
Sędziwy Jeż
Posty: 49
Rejestracja: 29 lip 2010, 08:30
Płeć: Mężczyzna
Wersja Ubuntu: 14.04
Środowisko graficzne: GNOME
Architektura: x86_64

[solved] Uruchomienie skryptu z prawami administratora, wraz z uruchomieniem systemu

Post autor: shani »

Witam serdecznie,
Jakiś czas temu udało mi się uruchomić podświetlenie klawiatury w moim laptopie MSI. Stworzyłem plik server.js. Jednakże każde uruchomienie podświetlenia muszę robić "z palca", za każdym razem po uruchomieniu systemu. Postanowiłem napisać skrypt i wrzucić go do katalogu skryptów startowych /etc/init.d. Jednakże nie działa, nic się nie uruchamia. Wydaje mi się, że może to być wina wymaganych uprawnień administratora (komenda sudo node server.js), a co za tym idzie podania hasła. Ale jak to zrobić? Sama komenda sudo -u <nazwa użytkownika> <ścieżka> (gdzies tu chyba komenda powinna jeszcze być) nic nie daje. Probowałem na wiele sposobów. Korzystam z Ubuntu 14.04 64bit.
Skrypt wygląda jak poniżej

Kod: Zaznacz cały

#!/bin/bash
### BEGIN INIT INFO
# Provides: Msi-klm
# Required-Start: $all
# Required-Stop: $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Description:       Uruchomienie podswietlenia klawiatury
### END INIT INFO

cd /home/msi-klm/
sudo -u shani node server.js
Z góry dziękuję za pomoc.
Pozdrawiam

---------
Zauważyłem jeszcze jedną rzecz, próbując sprawdzić czy skrypt z pośród skryptów startowych zostanie uruchomiony komendą "sudo service MSI-KLM start", jednakże jest problem ze ścieżką, wyrzuca błąd, że nie ma takiego pliku ani katalogu. Ścieżka jest jak najbardziej prawidłowa, gdzie tkwi problem?

Kod: Zaznacz cały

/etc/init.d/MSI-KLM: line 11: /home/msi-klm/: Nie ma takiego pliku ani katalogu

module.js:340
    throw err;
          ^
Error: Cannot find module '/server.js'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:906:3
Ostatnio zmieniony 05 mar 2015, 20:24 przez shani, łącznie zmieniany 1 raz.
Awatar użytkownika
enedil
Przebojowy Jelonek
Przebojowy Jelonek
Posty: 1352
Rejestracja: 08 wrz 2012, 16:54
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: i3
Architektura: x86_64
Kontakt:

Re: Uruchomienie skryptu z prawami administratora, wraz z uruchomieniem systemu

Post autor: enedil »

Po prostu, niech jedyną niezakometowaną linią będzie

Kod: Zaznacz cały

node /home/msi-klm/server.js
Wszystkie skrypty w /etc/init.d i tak się uruchamiają z prawami roota.
Dobrze jest, psiakrew, a kto powie, że nie, to go w mordę!

~moderatorzy
Awatar użytkownika
shani
Sędziwy Jeż
Sędziwy Jeż
Posty: 49
Rejestracja: 29 lip 2010, 08:30
Płeć: Mężczyzna
Wersja Ubuntu: 14.04
Środowisko graficzne: GNOME
Architektura: x86_64

Re: Uruchomienie skryptu z prawami administratora, wraz z uruchomieniem systemu

Post autor: shani »

Ehh, wydawaloby sie, ze czlowiek juz z tym linuxem ponad 6 lat i nadal tak wiele do nauki o_O
Sprawdze jak tylko wroce do domu, i dam znac jak postepy. Dziekuje za zainteresowanie :)
marcin1982
Gibki Gibbon
Gibki Gibbon
Posty: 3209
Rejestracja: 30 wrz 2007, 13:49
Płeć: Mężczyzna

Re: Uruchomienie skryptu z prawami administratora, wraz z uruchomieniem systemu

Post autor: marcin1982 »

node /home/msi-klm/server.js
To możesz dopisać do pliku:

Kod: Zaznacz cały

/etc/rc.local
Awatar użytkownika
shani
Sędziwy Jeż
Sędziwy Jeż
Posty: 49
Rejestracja: 29 lip 2010, 08:30
Płeć: Mężczyzna
Wersja Ubuntu: 14.04
Środowisko graficzne: GNOME
Architektura: x86_64

Re: Uruchomienie skryptu z prawami administratora, wraz z uruchomieniem systemu

Post autor: shani »

Niestety nie idzie, jednak wydaje mi sie, ze gdzies tu popelniam tzw "czeski blad". Probujac odpalic skrypt komenda "sudo service MSI-KLM start" otrzymuje takie oto cus:

Kod: Zaznacz cały

module.js:340
    throw err;
          ^
Error: Cannot find module '/home/msi-klm/server.js'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:906:3
Ale to jest niemozliwe, ze sciezka jest zla, eh, plik server.js mam w katalogu home/msi-klm
-----------------------
Okey, juz wiem gdzie byl blad, w sciezce wlasnie ;) Poprawna sciezka to home/shani/msi-klm/server.js :) Juz wszystko dziala jak nalezy, dziekuje za pomoc!

Acha, jeszcze jedno pytanie, gdzie w takim razie ten skrypt/komende mam miec dopisana? rc.local, czy init.d wystarczy?
marcin1982
Gibki Gibbon
Gibki Gibbon
Posty: 3209
Rejestracja: 30 wrz 2007, 13:49
Płeć: Mężczyzna

Re: [solved] Uruchomienie skryptu z prawami administratora, wraz z uruchomieniem systemu

Post autor: marcin1982 »

Jak dasz komendę do /etc/init.d/ albo /etc/rc.local to bez sudo.

Uruchom dla testu normalnie z konsoli w ten sposób:
1.

Kod: Zaznacz cały

sudo su -
2.

Kod: Zaznacz cały

node /home/msi-klm/server.js
Jeśli działa to dodaj tylko tą linijkę do /etc/rc.local:

Kod: Zaznacz cały

node /home/msi-klm/server.js
Upewnij się, że plik ma prawo do uruchomienia:

Kod: Zaznacz cały

sudo chmod a+x /etc/rc.local
Zrestartuj komputer.
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 1 gość