Jak spustit skript po spuštění Fedora Server 24

Václav

Jak spustit skript po spuštění Fedora Server 24
« kdy: 21. 08. 2016, 14:17:13 »
Zdravím,
celkem dlouho již hledám odpověď na to, jak spustit skript po spuštění u Fedory Server Editions. Poradíte mi prosím někdo?

Buď zda existuje nějaký script po spuštění, či přes Systemd. Já fakt nevím a už jsem z toho fakt zničený.

Budu opravdu vděčný za pomoc.

Díky.


Jenda

Re:Jak spustit skript po spuštění Fedora Server 24
« Odpověď #1 kdy: 21. 08. 2016, 14:30:45 »
Ve starších verzích fungovalo /etc/rc.local. Tady už ne?

Re:Jak spustit skript po spuštění Fedora Server 24
« Odpověď #2 kdy: 21. 08. 2016, 20:30:25 »
Ve starších verzích fungovalo /etc/rc.local. Tady už ne?
Áno, funguje, akurát sa musí explicitne zapnúť. Sám som bol na to zvedavý, keby som bol niekedy nútený v Gentoo prejsť tiež na tú zvrhlosť (systemd). Viac je napríklad na https://ask.fedoraproject.org/en/question/26898/what-is-the-auto-start-file-like-rclocal/

Václav

Re:Jak spustit skript po spuštění Fedora Server 24
« Odpověď #3 kdy: 22. 08. 2016, 22:25:08 »
Diky, ale rc.local v /etc vubec neni. Mam to vytvorit? :-)

Ale ani pak mi to nejde :-(. Ja uz jsem fakt zoufaly.. Nevim si rady. Prosiiiim, pomoooooc :-)

nobody(ten pravej)

Re:Jak spustit skript po spuštění Fedora Server 24
« Odpověď #4 kdy: 22. 08. 2016, 23:18:17 »
mas to v tom odkazu od Vladimira, tak bud neumis cist, nebo ti dela problem anglictina, pak by me ale zajimalo co si kde vlastne hledal pri tom tvem "celkem dlouho již hledám odpověď" ;)

vytvoris soubor /etc/rc.local s obsahem:
Kód: [Vybrat]
#!/bin/sh -e

/tohle/chci/pustit

exit 0

pak tomu nastavis priznak spustitelnosti:
Kód: [Vybrat]
chmod +x /etc/rc.local
a povolis sYsTeMd sluzbu co se uraci poustet /etc/rc.local pri startu:
Kód: [Vybrat]
systemctl enable rc-local.service
jestli se uspesne aktivovalo muzes zkontrolovat pomoci:
Kód: [Vybrat]
systemctl status rc-local.service


Václav

Re:Jak spustit skript po spuštění Fedora Server 24
« Odpověď #5 kdy: 22. 08. 2016, 23:40:26 »
Diky, tohle jsem udelal. Ale stejne se to nespusti. Ale ja hlavne potrebuji spusteni az PO startu, ne pri startu..

A je to tedy /etc/rc.d/rc.local nebo /etc/rc.local rovnou? Neslo mi stejne ani jedno....

Hlavne to potrebuji az po startu spoustet...

Diky za pomoc..

JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Jak spustit skript po spuštění Fedora Server 24
« Odpověď #6 kdy: 23. 08. 2016, 00:00:56 »
Zkus to takle:

Kód: [Vybrat]
#!/bin/sh -e
Date > /tmp/test.log
/tohle/chci/pustit &>> /tmp/test.log
Date >> /tmp/test.log
exit 0

Pak se podivej, jestli mas test.log, jestli tam mas dva radky s datumem a casem a mezi nima neco od tveho skriptu.

Jinak rc.local by se mel spoustet az po staru vseho ostatniho. Pokud je to porad moc brzo nebo do toho systemd vnesl nejakou genialni Poetteringovu chytristiku a startuje t ted driv, tak leda asi to nejak odhadnout a prihodit tam sleep.

Re:Jak spustit skript po spuštění Fedora Server 24
« Odpověď #7 kdy: 23. 08. 2016, 05:24:23 »
Diky, tohle jsem udelal. Ale stejne se to nespusti. Ale ja hlavne potrebuji spusteni az PO startu, ne pri startu..
A je to tedy /etc/rc.d/rc.local nebo /etc/rc.local rovnou? Neslo mi stejne ani jedno....

Hlavne to potrebuji az po startu spoustet...

Diky za pomoc..

A co takto si vytvorit service skript a napisat mu direktivu After.. pripadne dalsie moznosti..tych moznosti je milion. Mozes pouzit cron, mozes pouzit rc.local..Staci zapnut trochu mozog. Prosimta v ktorej firme pracujes aby som vedel , ktoru mam zdaleka obchadzat ak nechcem prist do styku s lopatami?
Alebo ak si na strednej kuchar-casnik tak potom sa ospravedlnujem, Tvoja otazka ma opodstatnenie. :)

Václav

Re:Jak spustit skript po spuštění Fedora Server 24
« Odpověď #8 kdy: 23. 08. 2016, 09:52:35 »
Ukázal se mi jen jeden radek s datem. Script mam takto:
#!/bin/sh -e

date > /tmp/test.log

systemctl start httpd.service

date > /tmp/test.log

exit 0

Coz by melo byt spravne...

A jak by se to resilo pres systemd? Kdyz tomu rozumis, tak mi prosim porad. After jsem zkousel, ale nejak se mi to nepodarilo...

j

Re:Jak spustit skript po spuštění Fedora Server 24
« Odpověď #9 kdy: 23. 08. 2016, 10:27:15 »
A co takto si vytvorit service skript a napisat mu direktivu After.. pripadne dalsie moznosti..tych moznosti je milion. Mozes pouzit cron, mozes pouzit rc.local..Staci zapnut trochu mozog. Prosimta v ktorej firme pracujes aby som vedel , ktoru mam zdaleka obchadzat ak nechcem prist do styku s lopatami?
Alebo ak si na strednej kuchar-casnik tak potom sa ospravedlnujem, Tvoja otazka ma opodstatnenie. :)
jasne, takze misto aby jednoduse omistil scipt tam, kde se odjakziva proste spustil, bude vymejslet 158 kravovin a nastovat 234 konfiguracnich veci ... aby se docilil tehoz.

Mimochodem, cron v systemd uz taky nefunguje, pokud sis nevsim, nemuze uzivatel spustit aplikaci, pokud neni prihlasenej ...

Takze se pochlub tou firmou spis ty, at se ji vyhnou vsichni ostatni.

Re:Jak spustit skript po spuštění Fedora Server 24
« Odpověď #10 kdy: 23. 08. 2016, 11:37:07 »
O akych konfiguracnych kravovinach hovoris?
Odjakziva ked chcem pustit sluzbu tak jej pisem mojasluzba.service subor..service subory sa nachadzaju v /usr/lib/systemd/system .Mimochodom sa tam nachadza aj rc-local.service, ktora sa da enablovat.

Alebo sa da pouzit v crone riadok v style:
crontab -e
@reboot /skript/skript.sh
:wq

rebootnem a vsetko ide..Uz len toto su 3 moznosti z ktorych si moze vybrat ako sa to da spravit..
Cron mi funguje aj na systemd uplne bez problemov na x serveroch takze neviem s cim konkretne mas problem :)



« Poslední změna: 23. 08. 2016, 11:43:43 od snuff1987 »

Re:Jak spustit skript po spuštění Fedora Server 24
« Odpověď #11 kdy: 23. 08. 2016, 12:04:52 »
Pre Vaclava este raz (za predpokladu ze /root/XYZ.sh je Tvoj skript):
1.moznost vytvorit si service skript s nazvom XYZ.service: (Ak nevies kde najdi si service subory pomocou prikazu "find / -name *.service" )

[Unit]
Description=moj skript XYZ
After=sshd.service

[Service]
TimeoutStartSec=0
ExecStart=/root/XYZ.sh

[Install]
WantedBy=multi-user.target


nasledne das
systemctl daemon-reload
systemctl enable XYZ.service  (malo by Ti napisat creating symlink ln -s ... )

2.moznost
upravis /etc/rc.local a dopises tam riadok
/root/XYZ.sh

potom napises systemctl enable rc-local.service
(Ak ti to vyhodi nejaku chybovu hlasku pogoogli , alebo sa pozri do rc-local.service co to vlastne ma robit)

3. moznost

crontab -e
@reboot /root/XYZ.sh
:wq
« Poslední změna: 23. 08. 2016, 12:10:03 od snuff1987 »

JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Jak spustit skript po spuštění Fedora Server 24
« Odpověď #12 kdy: 23. 08. 2016, 12:48:08 »
Ukázal se mi jen jeden radek s datem.

V tom pripade to asi krachlo na systemctl start httpd.service (diky prepinaci -e). Problem bude asi v tom, ze shell nevi, kde je systemctl. Nedrzel jsi se uvedeneho prikladu, kde jasne stalo /tohle/chci/pustit, cimz autor chtel polopaticky vyjadrit, ze se prikaz ma vypsat s plnou cestou, protoze kdovi, jaky ma rc.local nastaveny environment. Prikaz systemctl je externi prikaz a kdyz neni nastavena path, shell nevi, kam sahnout.

Casta chyba, kterou lidi delaji i v cronu.

danny

Re:Jak spustit skript po spuštění Fedora Server 24
« Odpověď #13 kdy: 23. 08. 2016, 17:12:36 »
Ukázal se mi jen jeden radek s datem. Script mam takto:
#!/bin/sh -e

date > /tmp/test.log

systemctl start httpd.service

date > /tmp/test.log

exit 0

Coz by melo byt spravne...

A jak by se to resilo pres systemd? Kdyz tomu rozumis, tak mi prosim porad. After jsem zkousel, ale nejak se mi to nepodarilo...

máš to špatně, druhé date se má volat

Kód: [Vybrat]
date >> /tmp/test.log
protože jinak samotná jedna šipka přepíše celý obsah místo append na konec souboru

JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Jak spustit skript po spuštění Fedora Server 24
« Odpověď #14 kdy: 23. 08. 2016, 19:12:11 »
máš to špatně, druhé date se má volat

Kód: [Vybrat]
date >> /tmp/test.log

Aha, takze tady to nekdo ani neumi okopirovat.