Sziasztok!
Jóideje használom a cron @reboot opcióját, hogy egy esetleges újraindulás után a gép küldön egy emailt. Valamiért a frissen telepített gépemen nem akar működni. Amint feláll a rendszer szépen mennek az emailek, de a boot során valamiért nem. Tudna nekem tanácsot adni valaki ezzel kapcsolatban? Küldésre a mutt-ot használom, és a sendmail-lel van konfigurálva a gmail fiókom. A rendszer egy Ubuntu 24.04 LTS Server.
Köszönöm
- 929 megtekintés
Hozzászólások
A sendmailnek elvileg net hiányában is be kéne rakni spool-ba a leveleket és kiküldeni amint tudja, de lehet pl. dns ami nem tetszik neki amikor még indul a rendszer (ez olyat is okozhat, hogy lassan indul tőle a sendmail - manapság már nem olyan triviális dependency alapján sorban egyesével induló a boot folyamat - szóval simán lehet hogy túl korán fut a mutt amikor még nem fut a sendmail és elveszik a levél, ezt a @reboot scriptedbe tett sleep 5m -mel, nyilván a mutt sor előtt ellenőrizheted, ha akkor jó akkor erre keresgélj)
A logokban nincs semmi?
- A hozzászóláshoz be kell jelentkezni
Nálam postfix van, és mailx-el küldöm reboot-kor is a levelet és így tökéletesen jól működik.
- A hozzászóláshoz be kell jelentkezni
Az rc.local használata màr nem divat?
- A hozzászóláshoz be kell jelentkezni
sysvinit-es maradvány...
- A hozzászóláshoz be kell jelentkezni
ok, de mit használtok helyette?
sudo systemctl status rc-local.service [sudo] oregon jelszava: ● rc-local.service - /etc/rc.local Compatibility Loaded: loaded (/lib/systemd/system/rc-local.service; enabled-runtime; vendor preset: enabled) Drop-In: /usr/lib/systemd/system/rc-local.service.d └─debian.conf Active: active (exited) since Tue 2024-07-16 09:33:40 CEST; 4 days ago Docs: man:systemd-rc-local-generator(8) Process: 1867 ExecStart=/etc/rc.local start (code=exited, status=0/SUCCESS) CPU: 5ms
dpkg -S /lib/systemd/system/rc-local.service systemd: /lib/systemd/system/rc-local.service
- A hozzászóláshoz be kell jelentkezni
sima service-eket. hint: Type=oneshot
- A hozzászóláshoz be kell jelentkezni
Oké, de az nem kicsit kényelmetlenebb.
- A hozzászóláshoz be kell jelentkezni
miert is? ez szerinted mi a csuda? :D
cat /lib/systemd/system/rc-local.service
# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
# This unit gets pulled automatically into multi-user.target by
# systemd-rc-local-generator if /etc/rc.local is executable.
[Unit]
Description=/etc/rc.local Compatibility
Documentation=man:systemd-rc-local-generator(8)
ConditionFileIsExecutable=/etc/rc.local
After=network.target
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=infinity
RemainAfterExit=yes
GuessMainPID=no
nekem ez kapasbol bonyolultabbnak tunik, mint a legalapabb oneshot unit :) es meg csak nem is tudod egyesevel enable/disable-re rakosgatni, szerkesztgetheted az egyetlen scripted, ami ha feluton valahol elhasal nezhetsz, hogy a masik fele vajon miert nem futott le :) vagy, mint a mellekelt abra mutatja, nem nagyon tudod dependalni, szerencse(d)re a systemd-s sracok pont default beleraktak a network-on-t :) viszont ez meg azert sz*r, mert mi van ha halozat nelkul is le kene fusson? o.O ja, akkor besz*ptad...
(olyan aprosagokrol, mint a kulon ENV, journal unit log, stb. mar szot sem ejtek)
de kinek a papne
- A hozzászóláshoz be kell jelentkezni
Másról beszélünk.
- A hozzászóláshoz be kell jelentkezni
/etc/rc.local-rol beszelunk, es, hogy miert sz*r van jobb megoldas. :) eshogy manapsag egy ugyanolyan unit inditja mint barmi mast is.
fenti miatt, ha neked bonyi vagy kenyelmetlen egy simple unit mgirasa/managelese, akkor a modern rc-local sem neked valo, nem fogod erteni mitol mukodik (vagy sem es hogyan).
- A hozzászóláshoz be kell jelentkezni
Anno egy scriptbe bevágtam amit leakartam futtatni , sorban. Most ha minden egyes dologhoz írnék egy sytemd indító scriptet az szebb, több munka, több hiba lehetőség, ugyanazon végeredmény mellett.
- A hozzászóláshoz be kell jelentkezni
ha minden egyes dologhoz írnék egy sytemd indító scriptet az > kontrolcekontrolve. alig par sorral tobb, mint egy #!/bin/bash :D es a lentin meg lehet is kurtitani, ha pl. nem kell denpendelni semmire.
több hiba lehetőség > kevesebb. ha elolvastad volna fentebb, belatnad tenmagad is. " ha feluton valahol elhasal nezhetsz, hogy a masik fele vajon miert nem futott le" ha meg a bashscriptben kell hibakezelned, logozast implementalnod, na, az egy nagysagrenddel bonyibb, mint egy unit 5-6 sorbol. :)
- A hozzászóláshoz be kell jelentkezni
Jogos.
- A hozzászóláshoz be kell jelentkezni
"/etc/rc.local Compatibility"
Azaz csak azért van, hogy ezzel kompatibilis legyen. Ilyen alapon egy BSD-stílusú initet is alá lehetne patkolni, a legtöbb unitot kukázva...
- A hozzászóláshoz be kell jelentkezni
Már várom amikor majd "systemd-s maradvány"-okról beszélhetünk majd.
- A hozzászóláshoz be kell jelentkezni
Én meg azt, amikor a "vaskalaposok a múltban" felütéssel lehet rólatok beszélni...
- A hozzászóláshoz be kell jelentkezni
Nem gondolom hogy a sysvinit fog visszatérni, nem is kívánnám. De a systemd-nél azért el tudok képzelni jobbat.
Heck, összeszedném magam egy picit, még valószínű meg is tudnám írni, azért egy init rendszer nem atomtudomány (legalábbis a systemd előtt nem volt az). Csak kinek van arra ideje.
- A hozzászóláshoz be kell jelentkezni
nem atomtudomány (legalábbis a systemd előtt nem volt az).
meg is volt a baja, es korbe kellett takolni hogy rendesen menjen. amit meg most bydefault tud a systemd.
en meg emlekszem a monit es tarsaira ami kellett hogy restartolni lehessen egy kilepett servicet. vagy a jo kis prestart pingelesre hogy megvan-e a halozat. stbstb.
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!
- A hozzászóláshoz be kell jelentkezni
A hálózat meglétére sajnos továbbra is írni kell valamit. A múltkoriban írtam, hogy a DHCP daemon (kea) hiába volt úgy beállítva, hogy a hálózat indulása után induljon, elindult előtte, mert a network hamarabb jelezte vissza, hogy összejött a hálózat, minthogy az interface be lett konfigurálva. Nos, ez elvileg megoldódott, legalábbis akkor azt hittem. Aztán két alkalommal is megtörtént, hogy áramszünet után elindult a daemon úgy, hogy nem volt mire bind-oljon, a logokból nagyjából azt vettem ki, hogy mivel a router még nem állt készen (meg a switch sem), így hiába lett beállítva a hálózat, az interface még nem volt UP-ban, de látszólag kész volt, de a kea-nak nem tetszett.
Most írtam egy egysoros scriptet, ami pingeli a gatewayt, és akkor lép ki, ha ez sikeres, és ebből csináltam egy systemd unitot, amit meg kell várjon a DHCP service. Élesben még nem próbáltam ki.
- A hozzászóláshoz be kell jelentkezni
Részemről meg úgy vagyok vele, hogy a világ nem egybites.
Van, ahová/amire bőven elég az rc.local.
Van, ahová/amire bőven elég a cron.
Van, ahová/amire nem.
- A hozzászóláshoz be kell jelentkezni
Én viszont nem akarok bele gondolni, hogy a tendencia alapján mi jöhet a systemd után. :-)
- A hozzászóláshoz be kell jelentkezni
systemE
- A hozzászóláshoz be kell jelentkezni
MInt a németeknél a kefír után a kefünf...
- A hozzászóláshoz be kell jelentkezni
Nekem is működik a 22.04 LTS rendszeren. Az új gépen viszont 24.04 LTS alatt nem. Mindkét gépen ugyanazok a beállítások. Csak a reboot folyamán nem jön az email. Utána már minden rendben.
/var/log/mail.log:
2024-07-20T10:25:18.305567+02:00 localhost sendmail[856]: 46K8PIiI000856: to=root, ctladdr=root (0/0), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30374, relay=[127.0.0.1] [127.0.0.1], dsn=4.4.1, stat=Deferred: Connection refused by [127.0.0.1]
- A hozzászóláshoz be kell jelentkezni
kell egy kis ido neki, mire lesz halozat. ne @cron triggereljen, hanem van erre systemd timer. (OnBootSec=1m), a service meg type=oneshot.
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!
- A hozzászóláshoz be kell jelentkezni
A 127.0.0.1 -es gepen lesz a hiba. Lehet, hogy a takker neni kihuzta mert kellett egy konnektor a porszivonak. Vagy megette a crowdstrike! :-)
- A hozzászóláshoz be kell jelentkezni
csinalj egy mezei service-t es tedd fuggove a postfixtol (vagy amit hasznalsz.)
ha nem local az mtu, akkor pedig siman a network-online-tol
Wants=network-online.target
After=network.target vagy network-online.target < ami nalad van.
pl:
[Unit]
Description=StartUpMailScript Service
Requires=postfix.service
After=postfix.service
[Service]
ExecStart=/path/to/mailscript.sh
Type=oneshot
[Install]
WantedBy=multi-user.target
majd a szokasos systemctl enable es tarsai :)
- A hozzászóláshoz be kell jelentkezni
ne @cron triggereljen, hanem van erre systemd timer. (OnBootSec=1m), a service meg type=oneshot.
Ezt egészen pontos hogy is kivitelezzem?
- A hozzászóláshoz be kell jelentkezni
Google.
Itt pl. majdnem pont olyan is van, ami neked kell: https://documentation.suse.com/sle-micro/6.0/html/Micro-systemd-working…
- A hozzászóláshoz be kell jelentkezni