systemd: Certain oneshot services get started more than once

Ed Swierk eswierk at skyportsystems.com
Thu Jun 5 02:28:15 BST 2014


Subject: systemd: Certain oneshot services get started more than once
Package: systemd
Version: 208-1
Severity: normal

Dear Maintainer,

During boot, certain services with Type=oneshot are started more than
once. The set of affected services varies between boots, but almost
always includes systemd-journal-flush.service and
systemd-random-seed.service.

The services don't seem to mind--they return with status=0/SUCCESS.
But occasionally a service gets started so many times that systemd
itself marks it as failed (Result: start-limit) and prints a big red
FAILED on the console.

I found that adding RemainAfterExit=yes to the service file prevents
this from happening. But nothing in the systemd documentation (nor in
the code, to the extent I understand it) indicates that this is
necessary for oneshot services.

The output of systemctl status and show are included below. I'd
appreciate any suggestions on debugging this further.

# systemctl status systemd-journal-flush.service | cat
systemd-journal-flush.service - Trigger Flushing of Journal to
Persistent Storage
   Loaded: loaded (/lib/systemd/system/systemd-journal-flush.service; static)
   Active: inactive (dead) since Thu 2014-06-05 00:53:02 UTC; 15min ago
     Docs: man:systemd-journald.service(8)
           man:journald.conf(5)
  Process: 753 ExecStart=/bin/systemctl kill --kill-who=main
--signal=SIGUSR1 systemd-journald.service (code=exited,
status=0/SUCCESS)
 Main PID: 753 (code=exited, status=0/SUCCESS)

# systemctl show systemd-journal-flush.service | sort
ActiveEnterTimestampMonotonic=0
ActiveExitTimestampMonotonic=0
ActiveState=inactive
After=systemd-journald.service local-fs.target remote-fs.target
systemd-journald.socket
AllowIsolate=no
Before=systemd-user-sessions.service
BlockIOAccounting=no
BlockIOWeight=1000
CanIsolate=no
CanReload=no
CanStart=yes
CanStop=yes
CapabilityBoundingSet=18446744073709551615
ConditionResult=yes
ConditionTimestampMonotonic=15390363
ConditionTimestamp=Thu 2014-06-05 00:53:01 UTC
ControlPID=0
CPUAccounting=no
CPUSchedulingPolicy=0
CPUSchedulingPriority=0
CPUSchedulingResetOnFork=no
CPUShares=1024
DefaultDependencies=no
Description=Trigger Flushing of Journal to Persistent Storage
DevicePolicy=auto
Documentation=man:systemd-journald.service(8) man:journald.conf(5)
ExecMainCode=1
ExecMainExitTimestampMonotonic=16310878
ExecMainExitTimestamp=Thu 2014-06-05 00:53:02 UTC
ExecMainPID=753
ExecMainStartTimestampMonotonic=15391998
ExecMainStartTimestamp=Thu 2014-06-05 00:53:01 UTC
ExecMainStatus=0
ExecStart={ path=/bin/systemctl ; argv[]=/bin/systemctl kill
--kill-who=main --signal=SIGUSR1 systemd-journald.service ;
ignore_errors=no ; start_time=[Thu 2014-06-05 00:53:01 UTC] ;
stop_time=[Thu 2014-06-05 00:53:02 UTC] ; pid=753 ; code=exited ;
status=0 }
FragmentPath=/lib/systemd/system/systemd-journal-flush.service
GuessMainPID=yes
Id=systemd-journal-flush.service
IgnoreOnIsolate=no
IgnoreOnSnapshot=no
IgnoreSIGPIPE=yes
InactiveEnterTimestampMonotonic=16311220
InactiveEnterTimestamp=Thu 2014-06-05 00:53:02 UTC
InactiveExitTimestampMonotonic=15392158
InactiveExitTimestamp=Thu 2014-06-05 00:53:01 UTC
IOScheduling=0
JobTimeoutUSec=0
KillMode=control-group
KillSignal=15
LimitAS=9223372036854775807
LimitCORE=9223372036854775807
LimitCPU=9223372036854775807
LimitDATA=9223372036854775807
LimitFSIZE=9223372036854775807
LimitLOCKS=9223372036854775807
LimitMEMLOCK=65536
LimitMSGQUEUE=819200
LimitNICE=0
LimitNOFILE=4096
LimitNPROC=64103
LimitRSS=9223372036854775807
LimitRTPRIO=0
LimitRTTIME=9223372036854775807
LimitSIGPENDING=64103
LimitSTACK=9223372036854775807
LoadState=loaded
MainPID=0
MemoryAccounting=no
MemoryLimit=18446744073709551615
MountFlags=0
Names=systemd-journal-flush.service
NeedDaemonReload=no
Nice=0
NonBlocking=no
NoNewPrivileges=no
NotifyAccess=none
OnFailureIsolate=no
OOMScoreAdjust=0
PermissionsStartOnly=no
PrivateNetwork=no
PrivateTmp=no
RefuseManualStart=no
RefuseManualStop=no
RemainAfterExit=no
Requires=systemd-journald.service
Restart=no
RestartUSec=100ms
Result=success
RootDirectoryStartOnly=no
SameProcessGroup=no
SecureBits=0
SendSIGHUP=no
SendSIGKILL=yes
Slice=system.slice
StandardError=inherit
StandardInput=null
StandardOutput=journal
StartLimitAction=none
StartLimitBurst=5
StartLimitInterval=10000000
StopWhenUnneeded=no
SubState=dead
SyslogLevelPrefix=yes
SyslogPriority=30
TimeoutStartUSec=0
TimeoutStopUSec=1min 30s
TimerSlackNSec=50000
Transient=no
TTYReset=no
TTYVHangup=no
TTYVTDisallocate=no
Type=oneshot
UMask=0022
UnitFileState=static
WantedBy=sysinit.target
WatchdogTimestampMonotonic=0
WatchdogUSec=0

# systemctl status systemd-random-seed.service | cat
systemd-random-seed.service - Load/Save Random Seed
   Loaded: loaded (/lib/systemd/system/systemd-random-seed.service; static)
   Active: inactive (dead) since Thu 2014-06-05 00:53:01 UTC; 15min ago
     Docs: man:systemd-random-seed.service(8)
           man:random(4)
  Process: 942 ExecStop=/lib/systemd/systemd-random-seed save
(code=exited, status=0/SUCCESS)
  Process: 940 ExecStart=/lib/systemd/systemd-random-seed load
(code=exited, status=0/SUCCESS)
 Main PID: 940 (code=exited, status=0/SUCCESS)

# systemctl show systemd-random-seed.service | sort
ActiveEnterTimestampMonotonic=0
ActiveExitTimestampMonotonic=0
ActiveState=inactive
After=systemd-readahead-collect.service
systemd-readahead-replay.service systemd-remount-fs.service
systemd-journald.socket var.mount -.mount
AllowIsolate=no
Before=sysinit.target shutdown.target networking.service
BlockIOAccounting=no
BlockIOWeight=1000
CanIsolate=no
CanReload=no
CanStart=yes
CanStop=yes
CapabilityBoundingSet=18446744073709551615
ConditionResult=yes
ConditionTimestampMonotonic=15577303
ConditionTimestamp=Thu 2014-06-05 00:53:01 UTC
Conflicts=shutdown.target
ControlPID=0
CPUAccounting=no
CPUSchedulingPolicy=0
CPUSchedulingPriority=0
CPUSchedulingResetOnFork=no
CPUShares=1024
DefaultDependencies=no
Description=Load/Save Random Seed
DevicePolicy=auto
Documentation=man:systemd-random-seed.service(8) man:random(4)
ExecMainCode=1
ExecMainExitTimestampMonotonic=15600643
ExecMainExitTimestamp=Thu 2014-06-05 00:53:01 UTC
ExecMainPID=940
ExecMainStartTimestampMonotonic=15578849
ExecMainStartTimestamp=Thu 2014-06-05 00:53:01 UTC
ExecMainStatus=0
ExecStart={ path=/lib/systemd/systemd-random-seed ;
argv[]=/lib/systemd/systemd-random-seed load ; ignore_errors=no ;
start_time=[Thu 2014-06-05 00:53:01 UTC] ; stop_time=[Thu 2014-06-05
00:53:01 UTC] ; pid=940 ; code=exited ; status=0 }
ExecStop={ path=/lib/systemd/systemd-random-seed ;
argv[]=/lib/systemd/systemd-random-seed save ; ignore_errors=no ;
start_time=[Thu 2014-06-05 00:53:01 UTC] ; stop_time=[Thu 2014-06-05
00:53:01 UTC] ; pid=942 ; code=exited ; status=0 }
FragmentPath=/lib/systemd/system/systemd-random-seed.service
GuessMainPID=yes
Id=systemd-random-seed.service
IgnoreOnIsolate=no
IgnoreOnSnapshot=no
IgnoreSIGPIPE=yes
InactiveEnterTimestampMonotonic=15671038
InactiveEnterTimestamp=Thu 2014-06-05 00:53:01 UTC
InactiveExitTimestampMonotonic=15579003
InactiveExitTimestamp=Thu 2014-06-05 00:53:01 UTC
IOScheduling=0
JobTimeoutUSec=0
KillMode=control-group
KillSignal=15
LimitAS=9223372036854775807
LimitCORE=9223372036854775807
LimitCPU=9223372036854775807
LimitDATA=9223372036854775807
LimitFSIZE=9223372036854775807
LimitLOCKS=9223372036854775807
LimitMEMLOCK=65536
LimitMSGQUEUE=819200
LimitNICE=0
LimitNOFILE=4096
LimitNPROC=64103
LimitRSS=9223372036854775807
LimitRTPRIO=0
LimitRTTIME=9223372036854775807
LimitSIGPENDING=64103
LimitSTACK=9223372036854775807
LoadState=loaded
MainPID=0
MemoryAccounting=no
MemoryLimit=18446744073709551615
MountFlags=0
Names=systemd-random-seed.service urandom.service
NeedDaemonReload=no
Nice=0
NonBlocking=no
NoNewPrivileges=no
NotifyAccess=none
OnFailureIsolate=no
OOMScoreAdjust=0
PermissionsStartOnly=no
PrivateNetwork=no
PrivateTmp=no
RefuseManualStart=no
RefuseManualStop=no
RemainAfterExit=no
RequiresMountsFor=/var/lib/systemd/random-seed
Restart=no
RestartUSec=100ms
Result=success
RootDirectoryStartOnly=no
SameProcessGroup=no
SecureBits=0
SendSIGHUP=no
SendSIGKILL=yes
Slice=system.slice
StandardError=inherit
StandardInput=null
StandardOutput=journal
StartLimitAction=none
StartLimitBurst=5
StartLimitInterval=10000000
StopWhenUnneeded=no
SubState=dead
SyslogLevelPrefix=yes
SyslogPriority=30
TimeoutStartUSec=0
TimeoutStopUSec=1min 30s
TimerSlackNSec=50000
Transient=no
TTYReset=no
TTYVHangup=no
TTYVTDisallocate=no
Type=oneshot
UMask=0022
UnitFileState=static
WantedBy=sysinit.target
WatchdogTimestampMonotonic=0
WatchdogUSec=0

-- Package-specific info:

-- System Information:
Debian Release: jessie/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: mips (mips64)

Kernel: Linux 3.10.20-rt14-xxx (SMP w/32 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages systemd depends on:
ii  acl                  2.2.52-1
ii  adduser              3.113+nmu3
ii  initscripts          2.88dsf-53
ii  libacl1              2.2.52-1
ii  libaudit1            1:2.3.6-1
ii  libblkid1            2.20.1-5.8
ii  libc6                2.18-7
ii  libcap2              1:2.22-1.2
ii  libcap2-bin          1:2.22-1.2
ii  libcryptsetup4       2:1.6.4-4
ii  libdbus-1-3          1.8.2-1
ii  libgcrypt11          1.5.3-4
ii  libkmod2             17-2
ii  liblzma5             5.1.1alpha+20120614-2
ii  libpam0g             1.1.8-3
ii  libselinux1          2.3-1
ii  libsystemd-daemon0   208-1
ii  libsystemd-journal0  208-1
ii  libsystemd-login0    208-1
ii  libudev1             208-1
ii  libwrap0             7.6.q-25
ii  sysv-rc              2.88dsf-53
ii  udev                 208-1
ii  util-linux           2.20.1-5.8

Versions of packages systemd recommends:
ii  libpam-systemd  208-1

Versions of packages systemd suggests:
pn  systemd-ui  <none>

-- Configuration Files:
/etc/systemd/system.conf changed:
[Manager]
LogTarget=console


-- no debconf information



More information about the Pkg-systemd-maintainers mailing list