Strona 1 z 1

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

: 04 mar 2015, 21:45
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

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

: 05 mar 2015, 07:56
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.

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

: 05 mar 2015, 08:29
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 :)

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

: 05 mar 2015, 17:22
autor: marcin1982
node /home/msi-klm/server.js
To możesz dopisać do pliku:

Kod: Zaznacz cały

/etc/rc.local

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

: 05 mar 2015, 20:19
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?

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

: 05 mar 2015, 20:46
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.