Sudo scriptben

Fórumok

Üdvözlet.

Van egy olyan nyűgöm, hogy egy programot kellene futtatnom a PC indításakor, (milyen meglepő).

Szóval a program speciálisan épített kártyával kommunikálgatna amíg a gép fut. Ehhez azonban, mármint a kommunikációs programnak root jog kell mert a párhuzamos portot bütykörészi.

Ehhez szeretnék egy olyan bash scriptet összehozni ami elindítja a programot, és nem kér root jeszót a usertől. A legjobb az ha user semmit sem tud az ügyről.

Az lenne a non plusz ultra, hogy a kommunikációs program esetleges halála esetén újraindítsa azt.

Tududjuk ki rendszere alatt, ez ugye elég egyszerű, a pingvin alatt nem annyira. (mármint nekem :-)) A rendszer Bubuntu 9.10 32 bit.

Nézegettem mindenfelé anyagokat, de a lényeget nem lelém, csak bőlére eresztett csapongó mondókák vannak szerteszéjjel...

Ha azonban van használható link akkor rtfm jeligére várom :-))

Előre is köszönet

Üdv.
L

Hozzászólások

A /etc/sudoers fájl a te barátod. A visudo paranccsal tudod megeditálni, és egy ilyen sor kell bele:

usernev ALL=NOPASSWD: /utvonal/bashscript.sh

A usernev értelem szerűen a user ami alatt szeretnéd hogy a bashscript.sh root jogokkal fusson.

/etc/rc.local -ba beírtam a scriptet az exit elé, működik HURRÁ! De hova logolja el a sikeres indítást?

További kérdések:
- leállítani hogyan tudom, mert nem túl elegáns ha a gép kikapcsolása előtt a kártyát nem állítom alaphelyzetbe. Tehát bashból adnék neki egy stop paramétert mikor a gép a kijelentkezést végzi.

- hogyan tudom figyelni a futó progit menet közben, és újraindítani ha kell? bash vagy írjak rá inkább valami programot ami azt kamillázza, hogy fut-é a kommunikátor. (Ez utóbbi olyan faramuci...)

Esetleg a top vagy bhtop paraméteres alkalmazása müködhet?

Rakd be a szkripted a /etc/init.d könyvtár alá majd készíts egy symlinket az alapértelmezett futási szint könyvtárárba (talán a /etc/rc2.d az). Az alapértelmezett futási szintet megtalélhatod az /etc/inittab fájlban

--
maszili

9.10 alatt már upstart van, nem? de végülis a lényeg ugyanaz.
annyi, hogy rcX.d-be nem kell semmit berakni, csak init.d-be a szkriptet, aztán ha jól emlékszem 'update-rc akarmi defaults' vagy valami hasonló, és szépen megcsinálja a symlinkeket (vagy defaults helyett lehet manuálisan is)
a szkript figyelésére/életbentartására meg mehet egy ilyesmi például:
'nohup /etc/my_keepalive_script >/dev/null 2>&1 &'
ahol a szkript mondjuk percenként csekkolja, hogy fut-e a processz és ad-e életjelet, és ha nem, akkor újraindítja.