Service units handling naive questions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

I'm running systemd-239-74.el8_8.x86_64 on RHEL 8.8 and have some naive questions about services :

Note : I'm talking here only about service units

1) listing of inactive (dead) units
####################################

For instance, the following oneshot static service (as it came with the distro):

# systemctl cat nfs-utils.service | grep -vE '^#'
[Unit]
Description=NFS server and client services

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/true

# systemctl status nfs-utils.service
● nfs-utils.service - NFS server and client services
Loaded: loaded (/usr/lib/systemd/system/nfs-utils.service; static; vendor preset: disabled)
   Active: inactive (dead)

shows up in the output of :

# systemctl list-units --all --type=service --state=dead nfs-utils.service | grep -iE nfs-utils
nfs-utils.service loaded inactive dead NFS server and client services

-> why is it marked as inactive in spite of the RemainAfterExit=yes directive ? Shouldn't it be in ACTIVE=active general state ?

b) If I create a simple oneshot static service unit, and start it:

# systemctl cat foobar.service | grep -vE '^#'
[Unit]
Description=Simple service

[Service]
ExecStart=echo "Hello !"

# systemctl status foobar.service
● foobar.service - Simple service
Loaded: loaded (/etc/systemd/system/foobar.service; static; vendor preset: disabled)
   Active: inactive (dead)

Jun 07 18:14:58 orbit systemd[1]: Started Simple service.
Jun 07 18:14:58 orbit echo[1896]: Hello !
Jun 07 18:14:58 orbit systemd[1]: foobar.service: Succeeded.

it ends up inactive (dead) but is not shown by the systemctl list-units --all --type=service --state=dead foobar.service command :

# systemctl list-units --all --type=service --state=dead foobar.service
0 loaded units listed.
To show all installed unit files use 'systemctl list-unit-files'.

c) it does if I turn it into an [Install]-able service and enable it

Could you help me figuring out what logic I am missing ? Does the command list only enabled units ?

2) Removing a template unit while instances are still running
#############################################################

a) I have a socket-activated sa-sshd@.service template unit (running sshd -i) which works fine but I experience many (a lot) of failed instances which I have to systemctl reset-failed sa-sshd@'*' just for the sake of cleaning up or just having systemctl status completion working smoothly

-> is there some way to do it in a smarter way (providing I don't care to investigate the failed instances) ?

b) I want to switch from a) to just systemd-socket-proxyd the socket to standard non socket activated sshd.service

To migrate, as I see a couple of active sa-sshd@xxx.service instances, and assuming new socket activation won't be triggered while I am migrating, is it safe to remove the template unit (+ daemon-reload), hence turning instances LOADED state to not-found or will it do something to the running instances ?

Thanks for your help

--
Thomas HUMMEL






[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux