units: add systemd-capsule@.service

This commit is contained in:
Lennart Poettering 2023-10-25 22:16:52 +02:00
parent fc772c61e8
commit 9b94ae834b
5 changed files with 64 additions and 0 deletions

13
units/capsule.slice Normal file
View File

@ -0,0 +1,13 @@
# 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.
[Unit]
Description=Capsule Slice
Documentation=man:systemd.special(7)
Before=slices.target

33
units/capsule@.service.in Normal file
View File

@ -0,0 +1,33 @@
# 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.
[Unit]
Description=Capsule Service Manager for %i
Documentation=man:capsule@.service(5)
After=dbus.service systemd-oomd.service
[Service]
User=c-%i
DynamicUser=yes
Type=notify-reload
ExecStart={{LIBEXECDIR}}/systemd --user --unit=capsule@%i.target
Environment=HOME=/var/lib/capsules/%i
Environment=XDG_RUNTIME_DIR=/run/capsules/%i
StateDirectory=capsules/%i
RuntimeDirectory=capsules/%i
LogExtraFields=CAPSULE=%i
Slice=capsule.slice
KillMode=mixed
Delegate=pids memory cpu
DelegateSubgroup=init.scope
TasksMax=infinity
TimeoutStopSec={{ DEFAULT_USER_TIMEOUT_SEC*4//3 }}s
KeyringMode=inherit
OOMScoreAdjust=100
MemoryPressureWatch=skip

View File

@ -745,6 +745,8 @@ units = [
{ 'file' : 'user-runtime-dir@.service.in' },
{ 'file' : 'user.slice' },
{ 'file' : 'user@.service.in' },
{ 'file' : 'capsule@.service.in' },
{ 'file' : 'capsule.slice' },
{
'file' : 'var-lib-machines.mount',
'conditions' : ['ENABLE_MACHINED'],

View File

@ -0,0 +1,15 @@
# 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.
[Unit]
Description=Main Capsule Target for %i
Documentation=man:systemd.special(7)
Requires=basic.target
After=basic.target
AllowIsolate=yes

View File

@ -11,6 +11,7 @@ units = [
'graphical-session.target',
'paths.target',
'printer.target',
'capsule@.target',
'session.slice',
'shutdown.target',
'smartcard.target',