Zdravím,
to že systemd s PID 1 se tváří jako "init" proces je naschvál - snaží se být do značné míry kompatibilní se SysV init systémem.
Zkusil jsem si teď u sebe zopakovat tvoji situaci a podařilo se mi všechno v pohodě rozchodit, zde popíšu, jak na to:
1) Stáhneš si a upravíš init skript, např. https://gist.github.com/peterhost/715255
2) zkopíruješ jej do složky /etc/init.d (budeš muset kopírovat pod rootem nebo použít sudo)
3) Musíš tomu skriptu nastavit +x příznak!! tj. musí být spustitelný. To udělá příkaz
sudo chmod +x /etc/init.d/my-simple
4) Nyní je potřeba spustit příkaz "sudo systemctl daemon-reload". Tento příkaz způsobí, že systemd reloadne všechny skripty a konfigurační soubory, tj. v našem případě si systemd všimne /etc/init.d/my-simple skriptu.
5) Nyní už funguje příkaz "sudo service my-simple start", stejně jako všechny ostatní.
Tedy systemd umí - kromě svých nativních .service souborů - i init skripty. Přesněji řečeno, systemd obsahuje generátor systemd-sysv-generator, který umí z init skriptu vygenerovat .service soubor. Přesně to se někde na pozadí děje, když během "sudo systemctl daemon-reload" systemd narazí na náš my-simple.
Kdykoli budeš dělat nějaké úpravy v init skriptu, musíš potom spustit "sudo systemctl daemon-reload", jinak se ty úpravy neprojeví.
Miroslav Mareš
Dne 17. ledna 2018 15:54 Jakub Podlaha j.podlaha@gmail.com napsal(a):
Zdar, tak opravdu je tam systemd, přestože se program pod pid 1 jmenuje "init" a přestože příkaz `service --status-all` se listuje podle scriptů v /etc/init.d/... nonic. Npm věci jsem naházel do pm2 a non-npm narvu do těch .service souborů. Zatím se vše tváří, jakože to funguje.
Díky všem za rady, Jakub
2018-01-15 14:24 GMT+01:00 Lukáš Hrázký lukkash@email.cz:
Zdar,
zkus: systemctl status my-simple
systemctl start my-simple
A podobně, detaily si vygooglíš. systemctl je systemd příkaz pro správu služeb a dalších věcí, service příkaz to nějak forwarduje, nevim přesně, jak funguje. Zároveň, když tohle failne, nemáš systemd :)
systemd je určitě nejjednodušší a nejlepší způsob, pokud je v systému jako init. Service file pro jednoduchou službu je na pár řádků a opět google poradí.
Lukáš
On Mon, 2018-01-15 at 11:08 +0100, Jakub Podlaha wrote:
Ahoj, díky za odpovědi.
Mmonit vypadá dobře, ale je to zase nová syntax a další nástroj. Určitě na to v mezičase mrknu a zkusím to tím, jestli to nepůjde líp než tím nativním scriptem.
Používám instanci Debianu, neupravenou, tak jak byla vytvořena přes vpsadmin. Podle tohohle jsem myslel, že pužívá normálně SysV Init. $ pidof init 1
Navíc jsem si teď všiml, že tu mojí servisu vidím když dám: $ service --status-all ... [ - ] my-simple ... Ale spustit nejde.
Ptám se tady hlavě proto, jestli není ten Debian na vpsFree nějak upravený a nepoužívá třeba jiné nástroje. Jak řešíte automatické spouštění aplikací vy? Pužíváte jen nástroje, co už svoje init scripty mají (apache, nginx, atp.)?
Díky, Jakub
2018-01-15 9:30 GMT+01:00 Jakub Jelen jakuje@gmail.com:
To vypada, ze tvuj Debian pouziva systemd, takze psat init script mi prijde jako zbytecnost, kdyz muzes napsat nekolik radku service file:
https://www.freedesktop.org/software/systemd/man/systemd.service.ht ml
Oficialni dokumentace je velmi rozvlacna, ale pro inspiraci jak to muze vypadat doporucuji napriklad pohled na jinou oblibenou sluzbu, naprikald OpenSSH server:
systemct cat ssh
Automaticke spousteni by melo byt otazkou "systemct enable yourunit.service"
Jakub
2018-01-15 0:31 GMT+01:00 Nikos Timiopulos nikos@manikstudio.cz:
Ahoj,
mrkni jestli Ti nebude vyhovovat alternativa Monit https://mmonit.com/monit/ (https://packages.debian.org/stretch/mo nit).
Nikos
On 15 Jan 2018, at 00:23, Jakub Podlaha j.podlaha@gmail.com wrote:
Zdravim, rad bych se zeptal, jak vytvorim na Debianu init script pro appku (vetsinou node.js) a nastavim ho aby se spoustel pri startu systemu. Aktualne pouzivam detasovany screen a v nem shell pro kazdou appku, ale nechce se mi vse manualne spoustet po kazdem "Neplanovanem vypdadku".
Uz jsem stravil nekolik hodin snahou dohledat, jak to v Debianu chodi. Zkusil jsem treba tenhle script: https://gist.github.com/peterhos t/715255 (a nekolik dalsich) upravit a dat do /etc/init.d/my-simple. Dostavam chyby:
$ service my-simple start Failed to start my-simple.service: Unit my-simple.service failed to load: No such file or directory. $ update-rc.d "my-simple" enable update-rc.d: error: no runlevel symlinks to modify, aborting!
Myslel jsem, ze .service soubory patri pod systemd a ze Debian pouziva init scripty a ze service je tool na spravu init scriptu podobne jako v Gentoo je treba rc-update. Chyby jsem zkousel googlit, ale nasel jsem jen problemy se spatne nainstalovanymi aplikacemi.
Jestli me muzete nakopnout, nebo poradit, budu rad.
Zdar, Jakub
Community-list mailing list Community-list@lists.vpsfree.cz http://lists.vpsfree.cz/listinfo/community-list
Community-list mailing list Community-list@lists.vpsfree.cz http://lists.vpsfree.cz/listinfo/community-list
Community-list mailing list Community-list@lists.vpsfree.cz http://lists.vpsfree.cz/listinfo/community-list
Community-list mailing list Community-list@lists.vpsfree.cz http://lists.vpsfree.cz/listinfo/community-list
Community-list mailing list Community-list@lists.vpsfree.cz http://lists.vpsfree.cz/listinfo/community-list
Community-list mailing list Community-list@lists.vpsfree.cz http://lists.vpsfree.cz/listinfo/community-list