Nabídka

Zobrazit příspěvky

Zde lze prohlédnout všech příspěvky uživatele. Jsou zde vidět pouze příspěvky z oblastí, do kterých máte přístup.

Nabídka Zobrazit příspěvky

Témata - hobit

#1
Zdravím.
Bojuji s nastavením systemd a spuštěním příkazu po strartu počítače. Já vím, že je toho na internetu plno, ale nenašel jsem tam nic co by mi pomohlo.
Mám Debian 8.
Po restartu počítače se mi tftpd-hpa server nespustí.

# systemctl status tftpd-hpa.service
● tftpd-hpa.service - LSB: HPA's tftp server
   Loaded: loaded (/etc/init.d/tftpd-hpa)
   Active: failed (Result: exit-code) since Thu 2018-06-28 23:42:58 CEST; 3s ago
  Process: 540 ExecStart=/etc/init.d/tftpd-hpa start (code=exited, status=66)


Tak jsem přišel na to, že když ho restartuji hned potom tak to funguje:

# systemctl restart tftpd-hpa.service
# systemctl status tftpd-hpa.service
● tftpd-hpa.service - LSB: HPA's tftp server
   Loaded: loaded (/etc/init.d/tftpd-hpa)
   Active: active (running) since Thu 2018-06-28 20:54:32 CEST; 2s ago
  Process: 1189 ExecStart=/etc/init.d/tftpd-hpa start (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/tftpd-hpa.service
           └─1195 /usr/sbin/in.tftpd --listen --user tftp --address 172.30.11.99:69 --secure --create /srv/tftp


Tak mne napadlo, že přidám "unit" do systemd a nastavím že se má pouštět po tftp-hpa. To jsem ale narazil, protože na to prostě nemohu příjít jak systemd nastavit aby se příkaz "systemctl restart tftpd-hpa.service! pustil až po tftp-hpa.

Vytvořil jsem soubor "/etc/systemd/system/restart-tftpd-hpa.service"
----------------------------------
[Unit]
Description=Restart tftp-hpa
After=tftp-hpa.service

[Service]
Type=oneshot
ExecStart=/bin/systemctl restart tftpd-hpa.service
SuccessExitStatus=1

[Install]
WantedBy=basic.target
----------------------------------

Aktualizoval systemd a zapnul novou službu:
systemctl daemon-reload
systemctl start restart-tftpd-hpa.service
ssytemctl enable restart-tftpd-hpa.service

# systemctl list-dependencies
default.target
● ├─accounts-daemon.service
● ├─exim4.service
● ├─gdm.service
● ├─gdomap.service
● ├─irqbalance.service
● ├─minissdpd.service
● ├─ntp.service
● ├─openbsd-inetd.service
● ├─speech-dispatcher.service
● ├─systemd-update-utmp-runlevel.service
● ├─systemd-update-utmp-runlevel.service
● ├─tftpd-hpa.service
└─multi-user.target
●   ├─anacron.service
●   ├─atd.service
●   ├─cron.service
●   ├─dbus.service
●   ├─exim4.service
●   ├─gdomap.service
●   ├─hyperv-daemons.hv-fcopy-daemon.service
●   ├─hyperv-daemons.hv-kvp-daemon.service
●   ├─hyperv-daemons.hv-vss-daemon.service
●   ├─inetd.service
●   ├─irqbalance.service
●   ├─minissdpd.service
●   ├─ModemManager.service
●   ├─NetworkManager.service
●   ├─ntp.service
●   ├─openbsd-inetd.service
●   ├─pppd-dns.service
●   ├─rc-local.service
●   ├─rsyslog.service
●   ├─speech-dispatcher.service
●   ├─ssh.service
●   ├─systemd-ask-password-wall.path
●   ├─systemd-logind.service
●   ├─systemd-update-utmp-runlevel.service
●   ├─systemd-user-sessions.service
●   ├─tftpd-hpa.service
●   ├─basic.target
●   │ ├─alsa-restore.service
●   │ ├─alsa-state.service
●   │ ├─restart-tftpd-hpa.service
●   │ ├─paths.target
....

Dle pořadí závislostí je to až za tftp-hpa, takže správně.

Ale po rebootu počítače je stále "tftp-hpa" failed.

# systemctl status tftpd-hpa.service
● tftpd-hpa.service - LSB: HPA's tftp server
   Loaded: loaded (/etc/init.d/tftpd-hpa)
   Active: failed (Result: exit-code) since Thu 2018-06-28 23:42:58 CEST; 8s ago
  Process: 540 ExecStart=/etc/init.d/tftpd-hpa start (code=exited, status=66)


Zkoušel jsem měnit parametr After kam jsem přidal network.target, a jiné služby, zkoušel jsem změnit v sekci Install dát "WantedBy=multi-user.target".
Zkusil přidat parametr Requires aj.

Ale prostě mi to stále nejde.

Nenapadá někoho co dělám špatně?
Copak když dám v systemd after po nějaké službě, tak by se měla spustit až po ni, ne? V dependencies to je až po ní, ale stejně to nefunguje.
Nechápu to.

Hobit.