Portál AbcLinuxu, 15. května 2025 12:07

Dotaz: Arch Linux - start aplikace po startu systemu

29.10.2012 19:30 Marian Pistala
Arch Linux - start aplikace po startu systemu
Přečteno: 672×
Odpovědět | Admin
Ahoj, nevite prosim jak v Arch Linuxu spustit aplikaci po startu systemu? Je pekne ze arch ma primo stranku resici tento problem:
https://wiki.archlinux.org/index.php/Autostarting
Ale zde jsem odpoved nenasel. Potrebuji spustit sluzbu shellinaboxd. To pres systemctl nelze. Pokud dam prikaz
shellinaboxd -p 8022 &
Do /etc/profile, tak ma sluzba tendenci se spoustet pri kazdem prihlaseni do systemu (napr SSH). Otazka tedy zni, jak mohu sluzbu nechat spustit pouze po startu systemu?

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

mess avatar 29.10.2012 20:25 mess | skóre: 43 | blog: bordel | Háj ve Slezsku - Smolkov
Rozbalit Rozbalit vše Re: Arch Linux - start aplikace po startu systemu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Můžeš si na to napsat .service soubor a pak se to spustí normálně přes sytemd. Inspiraci, jak na to, můžeš najít třeba tady.
Cez párne mesiace zošíváš vaginy, cez neparne montuješ hajzle.
29.10.2012 21:11 l4m4
Rozbalit Rozbalit vše Re: Arch Linux - start aplikace po startu systemu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nevím, co je shellinaboxd, zda to forkuje, co to dělá s porty, zda si to řeší samo nějaký pidfile a cojávím. Ale pokud pro něj dokážeš napsat SysV init službu, není problém napsat ani systemd unitu. Takže řešení je napsat systemd unitu. Vezmi za základ unitu něčeho, co se chová podobně jako ten shellinaboxd, a mělo by to být na pár minut.
30.10.2012 15:54 Marian Pistala
Rozbalit Rozbalit vše Re: Arch Linux - start aplikace po startu systemu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Obe dve ta reseni se mi zdaji nejaka slozita, to opravdu nejde vyresit nejak jinak? To uz za jednodussi reseni povazuji vlozit do /etc/profile maly kod, ktery se podiva zda aplikace bezi a pokud ne, tak ji spusti.
Max avatar 30.10.2012 16:38 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Arch Linux - start aplikace po startu systemu
Když chceš spustit daemona, tak by jsi to měl řešit systémově. Tzn., napsat si pro něj startup script (v případě systemd unitu), což je úplně primitivní záležitost.
Když ten svůj příkaz hodíš třeba po spuštění, tak nemáš ošetřeno ukončování toho daemona.

Vážně je tak velký problém vytvořit nějaký takový soubor + uživatele? :
nano /etc/systemd/system/shellinaboxd.service

[Unit]
Description=shellinaboxd

[Service]
User=shellinaboxd
ExecStart=/usr/bin/shellinaboxd -p 8022
ExecStop=/.....
PIDFile=/var/run/shellinaboxd/shellinaboxd.pid

[Install]
WantedBy=multi-user.target
Resp. něco podle již linkovaného : systemd/Services
Zdar Max
Měl jsem sen ... :(
30.10.2012 17:13 l4m4
Rozbalit Rozbalit vše Re: Arch Linux - start aplikace po startu systemu
Vložit kód do /etc/profile je možná trochu jednodušší, zato to vůbec není řešení.

Kvízová otázka: Kdy a s právy jakého uživatele se provádí obsah /etc/profile?
rADOn avatar 30.10.2012 17:48 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: Arch Linux - start aplikace po startu systemu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tady si nekde plete zapnuti systemu a prihlaseni uzivatele.
"2^24 comments ought to be enough for anyone" -- CmdrTaco
31.10.2012 19:18 Marian Pistala
Rozbalit Rozbalit vše Re: Arch Linux - start aplikace po startu systemu
Odpovědět | | Sbalit | Link | Blokovat | Admin
No dobre, ale co kdyby se mi nejednalo o spusteni urcite sluzby ale jen o provedeni nejake akce (nastaveni pravidel FW, odeslani zpravy na jiny server atd). Pak by se to resilo jak?
michich avatar 31.10.2012 20:56 michich | skóre: 51 | blog: ohrivane_parky
Rozbalit Rozbalit vše Re: Arch Linux - start aplikace po startu systemu
Službou s Type=oneshot.
31.10.2012 19:26 Marian Pistala
Rozbalit Rozbalit vše Re: Arch Linux - start aplikace po startu systemu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Drive k tomuto slouzil soubor /etc/rc.local, ale ten je ted deprecated, co je tedy nahradou za nej?
Max avatar 31.10.2012 21:52 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Arch Linux - start aplikace po startu systemu
Další možností je, zprovoznit si rc.local, viz : Just create a file /etc/systemd/system/rc-local.service
Zdar Max
Měl jsem sen ... :(
1.11.2012 11:23 Marian Pistala
Rozbalit Rozbalit vše Re: Arch Linux - start aplikace po startu systemu
Kdyz jsem postupoval podle toho navodu, dostanu:
[user@server~]$ sudo systemctl enable rc-local.service
The unit files have no [Install] section. They are not meant to be enabled using systemctl.
[user@server~]$ systemctl status rc-local.service
rc-local.service - /etc/rc.local Compatibility
          Loaded: loaded (/etc/systemd/system/rc-local.service; static)
          Active: failed (Result: exit-code) since Thu, 2012-11-01 11:23:04 CET; 8s ago
         Process: 1931 ExecStart=/etc/rc.local start (code=exited, status=203/EXEC)
          CGroup: name=systemd:/system/rc-local.service
1.11.2012 11:43 Marian Pistala
Rozbalit Rozbalit vše Re: Arch Linux - start aplikace po startu systemu
Ok, tak jsem pridal tu [Install] sekci, takze enable sluzby funguje, ale uz nefunguje jeji spusteni:
[user@server ~]$ sudo systemctl start rc-local.service
Job for rc-local.service failed. See 'systemctl status rc-local.service' and 'journalctl -n' for details.
[user@server  ~]$ sudo systemctl status rc-local.service
rc-local.service - /etc/rc.local Compatibility
          Loaded: loaded (/etc/systemd/system/rc-local.service; enabled)
          Active: failed (Result: exit-code) since Thu, 2012-11-01 11:39:20 CET; 1min 13s ago
         Process: 541 ExecStart=/etc/rc.local start (code=exited, status=203/EXEC)
          CGroup: name=systemd:/system/rc-local.service

Nov 01 11:39:20 server systemd[1]: Starting /etc/rc.local Compatibility...
Nov 01 11:39:20 server systemd[1]: Failed to start /etc/rc.local Compatibility.
Nov 01 11:39:20 server systemd[1]: Unit rc-local.service entered failed state
$ ls -l /etc/rc.local 
-rwxr-xr-x 1 root root 135 Nov  1 11:31 /etc/rc.local
michich avatar 1.11.2012 11:56 michich | skóre: 51 | blog: ohrivane_parky
Rozbalit Rozbalit vše Re: Arch Linux - start aplikace po startu systemu
"status=203/EXEC" říká, že selhalo volání exec...(). Pravděpodobně ti v tom skriptu chybí na začátku #!/bin/sh.
Max avatar 1.11.2012 11:44 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Arch Linux - start aplikace po startu systemu
Myslím, že stačí číst, ne? Viz "The unit files have no [Install] section". Takže by to mělo vypadat takto :
nano /etc/systemd/system/rc-local.service
[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local

[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99

[Install]
WantedBy=multi-user.target

systemctl enable rc-local
ln -s '/etc/systemd/system/rc-local.service' '/etc/systemd/system/multi-user.target.wants/rc-local.service'
Zdar Max
Měl jsem sen ... :(

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.