Ü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
- 928 megtekintés
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.
- A hozzászóláshoz be kell jelentkezni
szerk
- A hozzászóláshoz be kell jelentkezni
/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?
- A hozzászóláshoz be kell jelentkezni
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
- A hozzászóláshoz be kell jelentkezni
Nem tudom hogy milyen linux, de Ubuntun ami az /etc/init.d fájlban van azt mindet rootként futtatja. Szóval lehet hogy elég csak a script elérési útvonala ebbe a fájlba.
- A hozzászóláshoz be kell jelentkezni
Miután bemásoltad a scriptet az /etc/init.d/könyvtárba:
sudo update-rc.d myscript defaults
Ez elkészíti a szükséges linke(ke)t.
-----
Innen most töltsünk tiszta vizet a nyílt kártyákba: ...
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni