services kikapcsolasa
Fórum témák:
Sziasztok Redhat guruk,
egy olyan kerdessel fordulnek hozzatok (sajnos gugliban nem talaltam megoldast, vagy rosszul kerestem) hogy tudnam kikapcsolni a redhat specifikus, services servicename start/stop kapcsolot. Egy szkripthez kell, amiben csak az /etc/init.d/servicename start/stop johet szoba, es ki szeretnenk kapcsolni hogy ezeket a service-seket mashogy is lehessen inditani/leallitani. Nem tudom erthetoe, konkretan tomcat-rol lenne szo, tehat az akarjuk hogy a service tomcat start/stop NE mukodjon, csak az hogy /etc/init.d/tomcat start/stop.
Lehetseges ezt igy kapcsolni? Chkconfig iranyaban indultam el, de ott csak futasi ido szinten tudtam szabalyozni.
koszi elore is
udv
burg
- A hozzászóláshoz regisztráció és belépés szükséges
- 437 olvasás


Viszonylag hülye ötlet, de
Viszonylag hülye ötlet, de levenni a
/sbin/service-ről a futás jogot? :)
Vagy elvileg még selinuxszal is megoldható, de ebben a témában passzolok.
viszonylan nem rossz a hulye
viszonylan nem rossz a hulye otlet, de az lenne az igazi, ha csak konkret service-ket kapcsolnank ki, nem az osszest igy. de koszi, indulasnak nem rossz:)
Közben megnéztem, ez
Közben megnéztem, ez valójában egy szkript, úgyhogy tudod variálni igény szerint.
De a fo kerdes, hogy nincs
De a fo kerdes, hogy nincs ilyen parancs, amivel csak siman kikapcsolom csak a tomcatre? Mert ugy az selinuxos megoldas is vegulis csak a jogosultsagokkal valo jatszadozas lenne.
Eléggé nem értem ennek a
Eléggé nem értem ennek a célját. Ha az illetőnek nincs root joga, amúgy sem tudja piszkálni. Ha meg van neki, akkor nem teljesen mindegy, hogy azt írja be, hogy
/etc/init.d/tomcat startvagy
service tomcat start?
És akkor hiába veszed le a futtatási jogot, meg akár ezt a script-et is törölhetnéd, bárki ír magának erre bármilyen névvel egy másik scriptet, aztán használja.
Az /sbin/service - mint ahogy
Az /sbin/service - mint ahogy korabban is irtatok - egy wrapper script, ami az /etc/init.d alatti run scriptet hivja meg. Alapvetoen ugyanazt csinalja, mintha kezzel hivnad meg az adott szolgaltatas start/stop scriptjet, csakhogy:
service runs a System V init script in as predictable environment as possible, removing most environment variables and with current working directory set to /
Vagyis egy kicsit elegansabb kornyezetet teremt a futtatashoz, plusz van egy-ket erdekes szolgaltatasa.
Elarulod, miert szeretned meggatolni a parancs hasznalatat?
Hogyan tud elegánsabb lenni a
Hogyan tud elegánsabb lenni a közvetlen indításnál? Egy érvet tudok: a /sbin a PATH-ban van, míg a /etc/init.d nincs.
Ott irtam :) Visszalep a /
Ott irtam :) Visszalep a / dirbe es kitakaritja a kornyezeti valtozokat. Volt mar, hogy az ember ezekkel szivatta meg magat.
Most már csak azt nem értem,
Most már csak azt nem értem, ez miért szükséges. Egy service-nak nem mindegy, mi az aktuális pwd, amikor indítom? Ha valamiért szüksége van az aktuális elérési útra, akkor lehetne benne legalább egy cd /valami parancs.
A környezeti változók milyen aspektusból érdekesek? Vagy arra gondolsz, hogy az init scriptet hibásan írja meg valaki, s nem veszi ezt észre? Gondolok itt arra, mint amikor feltettem az abevjava környezetet, futtatnám, nem megy. Megnézem az indító scriptet, hát mit látok?
. setenvAha. És nyilván az összes alkönyvtáramban ott van az abev-es
setenv, amit be tud include-olni, akármelyik alkönyvtárban járjak is. Aztán átírtam erre:ABEVJAVA_PATH=/usr/share/abevjava. "$ABEVJAVA_PATH"/setenvEzen kívül hasonló hiba volt a java -jar jarfile résznél, ahol a jarfile nem tartalmazta az elérési utat. Aki írta a programot, nyilván éppen abban az alkönyvtárban volt, ahol a futtatható file is, hiszen ott editálta a kódját, neki működött, de bármilyen más alkönyvtárból már nem megy. Mondjuk ilyen alapvető hibával nem tudom, hogyan lehet kiadni egy adóbevalló programot. Lényegében egyetlen egyszer sem tesztelte senki. :( Még szerencse, hogy egy shell script-ben követték el a hibát, s ki tudtam javítani.
service
lberes írta:
Erre én is kíváncsi lennék :)
Bevallom férfiasan én nem szeretem használni, mert lusta vagyok és azért a szolgáltatások neve sem teljesen konvencionális (valamelyik nevének végén ott van a "d" valamelyiknél nincs), így inkább /etc/init.d megoldást használom és ott a shellnek köszönhetően a TAB-ra kiegészíti a pontos szolgáltatás nevét. Bár ahogy locsemege is utalt rá, mondjuk nem tartana sokba, ha a PATH-ba felvenném a /etc/init.d útvonalat is és akkor a service paranccsal is menne.
Igen, a megszokás és a lustaság :)
Ööö... akkor nem menne a
Ööö... akkor nem menne a service paranccsal, hiszen a TAB az argumentumot ebben az esetben nem tudja kiegészíteni. Ha a /etc/init.d-t beteszed a PATH-ba, akkor a service nevét beírva működne a dolog. Kérdés, nincs-e névütközés egyéb futtatható file-lal.
Viszont amit írsz, ugyanazért én is utálom a service parancsot, hiszen a service nevére én sem szoktam pontosan emlékezni, továbbá egyszerűbb TAB-ot nyomni, mint végig beírni a nevet.
hat koszi a tippeket,
hat koszi a tippeket, meggyoztetek , hagyom is ahogy van.
igazabol nem letfontosagu, csak egy fejleszto kivansaga lett volna, elegansabb lett volna a kodja, de akkor majd kuldom a redhat-hez reklamalni, hogy rakjak bele a kovetkezo kiadasba:)
Huh, ezt most végképp nem
Huh, ezt most végképp nem értem. Attól, hogy van
serviceparancs, még használható a/etc/init.d/valami startis.Olyan ez, mintha azt kérdeznéd, hogyan lehet betiltani a kerékpáros közlekedést. Attól, hogy lehet kerékpárral is közlekedni, még nyugodtan mehetsz autóval.
Ha egy adott feladatra több lehetőség is van, ugyanakkor az is megmaradt, amit eddig használtál, az miért baj? Azt használod, amelyik jól esik.