Systemd/src/basic
Daniel Black c53d2d54bd service: make killmode=cgroup|mixed, SendSIGKILL=no services singletons
KillMode=mixed and control group are used to indicate that all
process should be killed off. SendSIGKILL is used for services
that require a clean shutdown. These are typically database
service where a SigKilled process would result in a lengthy
recovery and who's shutdown or startup time is quite variable
(so Timeout settings aren't of use).

Here we take these two factors and refuse to start a service if
there are existing processes within a control group. Databases,
while generally having some protection against multiple instances
running, lets not stress the rigor of these. Also ExecStartPre
parts of the service aren't as rigoriously written to protect
against against multiple use.

closes #8630
2019-01-29 15:35:59 +11:00
..
af-list.c util: cast smaller type to large type 2018-12-02 05:58:18 +01:00
af-list.h tree-wide: remove Lennart's copyright lines 2018-06-14 10:20:20 +02:00
af-to-name.awk meson: also indent scripts with 8 spaces 2017-04-25 08:49:16 -04:00
alloc-util.c tree-wide: make new/new0/malloc_multiply/reallocarray safe for size 0 2018-12-21 16:39:34 +01:00
alloc-util.h tree-wide: make new/new0/malloc_multiply/reallocarray safe for size 0 2018-12-21 16:39:34 +01:00
architecture.c tree-wide: remove Lennart's copyright lines 2018-06-14 10:20:20 +02:00
architecture.h tree-wide: remove Lennart's copyright lines 2018-06-14 10:20:20 +02:00
arphrd-list.c af-list,arphrd-list: also include relevant missing_*.h headers 2018-12-07 11:48:41 +09:00
arphrd-list.h tree-wide: remove Lennart's copyright lines 2018-06-14 10:20:20 +02:00
arphrd-to-name.awk meson: also indent scripts with 8 spaces 2017-04-25 08:49:16 -04:00
async.c tree-wide: use assert_se() for signal operations with constants 2018-12-21 19:49:28 +01:00
async.h tree-wide: remove Lennart's copyright lines 2018-06-14 10:20:20 +02:00
audit-util.c tree-wide: remove Lennart's copyright lines 2018-06-14 10:20:20 +02:00
audit-util.h tree-wide: remove Lennart's copyright lines 2018-06-14 10:20:20 +02:00
blockdev-util.c tree-wide: port various parts of the code to use parse_dev() 2018-11-29 20:03:56 +01:00
blockdev-util.h tree-wide: remove Lennart's copyright lines 2018-06-14 10:20:20 +02:00
btrfs-util.c Fix a few comments 2019-01-08 23:11:26 +01:00
btrfs-util.h tree-wide: always declare bitflag enums the same way 2019-01-07 17:50:39 +01:00
build.h meson: generate version tag from git 2018-12-21 13:43:20 +01:00
bus-label.c tree-wide: remove Lennart's copyright lines 2018-06-14 10:20:20 +02:00
bus-label.h tree-wide: remove Lennart's copyright lines 2018-06-14 10:20:20 +02:00
cap-list.c util: cast smaller type to large type 2018-12-02 05:58:18 +01:00
cap-list.h tree-wide: remove Lennart's copyright lines 2018-06-14 10:20:20 +02:00
cap-to-name.awk meson: also indent scripts with 8 spaces 2017-04-25 08:49:16 -04:00
capability-util.c capability: fix build without PR_CAP_AMBIENT 2019-01-11 17:37:20 +01:00
capability-util.h util: drop missing.h from util.h 2018-12-04 10:00:34 +01:00
cgroup-util.c service: make killmode=cgroup|mixed, SendSIGKILL=no services singletons 2019-01-29 15:35:59 +11:00
cgroup-util.h service: make killmode=cgroup|mixed, SendSIGKILL=no services singletons 2019-01-29 15:35:59 +11:00
chattr-util.c chattr: optionally, return the old flags when updating them 2018-10-08 21:40:44 +02:00
chattr-util.h chattr: optionally, return the old flags when updating them 2018-10-08 21:40:44 +02:00
conf-files.c tmpfiles: fix crash with NULL in arg_root and other fixes and tests 2018-12-20 09:56:51 +01:00
conf-files.h conf-files: remove unused function 2018-11-30 16:56:35 +01:00
copy.c copy: Add a COPY_MERGE_EMPTY flag to merge only if the target is empty 2019-01-08 14:30:09 -06:00
copy.h copy: Add a COPY_MERGE_EMPTY flag to merge only if the target is empty 2019-01-08 14:30:09 -06:00
def.h Move LONG_LINE_MAX definition to fileio.h 2018-11-14 16:25:32 +01:00
device-nodes.c tree-wide: drop copyright headers from frequent contributors 2018-06-20 11:58:53 +02:00
device-nodes.h tree-wide: remove Lennart's copyright lines 2018-06-14 10:20:20 +02:00
dirent-util.c tree-wide: remove Lennart's copyright lines 2018-06-14 10:20:20 +02:00
dirent-util.h tree-wide: remove Lennart's copyright lines 2018-06-14 10:20:20 +02:00
env-file.c tree-wide: use '"' instead of '\"' 2019-01-17 16:46:29 +00:00
env-file.h util-lib: split out env file parsing code into env-file.c 2018-12-02 13:22:29 +01:00
env-util.c Drop some unnecessary newlines 2019-01-16 18:14:34 +01:00
env-util.h env-util: normalize one more flags enum 2019-01-07 17:50:39 +01:00
errno-list.c util: cast smaller type to large type 2018-12-02 05:58:18 +01:00
errno-list.h tree-wide: remove Lennart's copyright lines 2018-06-14 10:20:20 +02:00
errno-to-name.awk meson: also indent scripts with 8 spaces 2017-04-25 08:49:16 -04:00
escape.c basic: remove an assertion from cunescape_one 2018-11-16 08:45:16 +01:00
escape.h missing: move char{16,32}_t definitions to missing_type.h 2018-12-04 08:38:18 +01:00
ether-addr-util.c tree-wide: make hash_ops typesafe 2018-12-02 07:53:27 +01:00
ether-addr-util.h tree-wide: make hash_ops typesafe 2018-12-02 07:53:27 +01:00
extract-word.c tree-wide: remove Lennart's copyright lines 2018-06-14 10:20:20 +02:00
extract-word.h tree-wide: always declare bitflag enums the same way 2019-01-07 17:50:39 +01:00
fd-util.c tree-wide: use c99 static for array size declarations 2019-01-04 12:37:25 +01:00
fd-util.h tree-wide: use c99 static for array size declarations 2019-01-04 12:37:25 +01:00
fileio.c fileio: fix read_one_line() when reading bytes > 0x7F 2018-12-20 12:11:18 +01:00
fileio.h fileio: replace read_nul_string() by read_line() with a special flag 2018-12-18 15:03:05 +01:00
format-util.h tree-wide: drop double newline 2018-06-29 11:02:17 +09:00
fs-util.c locale-util: prefix special glyph enum values with SPECIAL_GLYPH_ 2018-12-14 08:22:54 +01:00
fs-util.h fs-util: add new CHASE_WARN flag to chase_symlinks() 2018-11-30 13:30:26 +01:00
gcrypt-util.c tree-wide: remove Lennart's copyright lines 2018-06-14 10:20:20 +02:00
gcrypt-util.h Drop my copyright headers 2018-06-14 13:03:20 +02:00
generate-af-list.sh af-list,arphrd-list: also include relevant missing_*.h headers 2018-12-07 11:48:41 +09:00
generate-arphrd-list.sh af-list,arphrd-list: also include relevant missing_*.h headers 2018-12-07 11:48:41 +09:00
generate-cap-list.sh separate flags from shebang 2017-12-25 19:48:49 +01:00
generate-errno-list.sh separate flags from shebang 2017-12-25 19:48:49 +01:00
glob-util.c tree-wide: remove Lennart's copyright lines 2018-06-14 10:20:20 +02:00
glob-util.h tree-wide: remove Lennart's copyright lines 2018-06-14 10:20:20 +02:00
gunicode.c tree-wide: beautify remaining copyright statements 2018-06-14 10:20:21 +02:00
gunicode.h tree-wide: beautify remaining copyright statements 2018-06-14 10:20:21 +02:00
hash-funcs.c hashmap: use ternary op to shorten code 2018-12-18 12:04:00 +01:00
hash-funcs.h hash-func: add destructors for key and value 2018-12-02 11:59:07 +01:00
hashmap.c Remove 'inline' attributes from static functions in .c files (#11426) 2019-01-15 08:12:28 +01:00
hashmap.h Delete duplicate lines 2019-01-12 16:02:26 +01:00
hexdecoct.c basic/hexdecoct: check for overflow 2018-10-02 12:54:00 +02:00
hexdecoct.h tree-wide: remove Lennart's copyright lines 2018-06-14 10:20:20 +02:00
hostname-util.c basic/hostname-util: do truncation last when cleaning up 2018-12-10 09:56:56 +01:00
hostname-util.h Partially unify hostname_is_valid() and dns_name_is_valid() 2018-12-10 09:56:56 +01:00
in-addr-util.c in-addr-util: fix undefined result for in4_addr_netmask_to_prefixlen(<0.0.0.0>) 2018-12-14 11:15:36 +01:00
in-addr-util.h tree-wide: make hash_ops typesafe 2018-12-02 07:53:27 +01:00
io-util.c journald: do not store the iovec entry for process commandline on stack 2019-01-09 23:41:53 +01:00
io-util.h journald: do not store the iovec entry for process commandline on stack 2019-01-09 23:41:53 +01:00
ioprio.h Restore naming of IOPRIO_PRIO defines from linux/ioprio.h 2018-03-21 00:46:22 +01:00
khash.c tree-wide: remove Lennart's copyright lines 2018-06-14 10:20:20 +02:00
khash.h tree-wide: remove Lennart's copyright lines 2018-06-14 10:20:20 +02:00
label.c tree-wide: remove Lennart's copyright lines 2018-06-14 10:20:20 +02:00
label.h basic/label: introduce mkdirat_label()/mkdirat_errno_wrapper() helpers 2018-07-30 15:54:03 +02:00
list.h basic/list: fix minor coding style issue 2018-11-24 04:26:10 +09:00
locale-util.c locale-util: prefix special glyph enum values with SPECIAL_GLYPH_ 2018-12-14 08:22:54 +01:00
locale-util.h locale-util: prefix special glyph enum values with SPECIAL_GLYPH_ 2018-12-14 08:22:54 +01:00
log.c tree-wide: use IOVEC_MAKE() at many places 2018-11-27 10:12:27 +01:00
log.h basic/log: add note about operator precendence 2018-11-22 10:56:43 +01:00
login-util.c Drop my copyright headers 2018-06-14 13:03:20 +02:00
login-util.h Drop my copyright headers 2018-06-14 13:03:20 +02:00
macro.h macro: include errno.h 2018-12-06 07:01:29 +01:00
memfd-util.c tree-wide: remove Lennart's copyright lines 2018-06-14 10:20:20 +02:00
memfd-util.h tree-wide: remove Lennart's copyright lines 2018-06-14 10:20:20 +02:00
mempool.c mempool: only enable mempool use when linked to libsystemd-shared.so 2018-10-11 11:10:37 +02:00
mempool.h mempool: only enable mempool use when linked to libsystemd-shared.so 2018-10-11 11:10:37 +02:00
meson.build meson: declare version.h as dep for libbasic 2019-01-05 13:30:23 +01:00
missing.h missing: re-add drm related entries 2018-12-07 12:46:55 +01:00
missing_audit.h missing: move audit related definitions to missing_audit.h 2018-12-06 13:25:24 +01:00
missing_btrfs.h missing: move btrfs related entries to missing_btrfs.h and missing_btrfs_tree.h 2018-12-04 07:46:59 +01:00
missing_btrfs_tree.h missing: move btrfs related entries to missing_btrfs.h and missing_btrfs_tree.h 2018-12-04 07:46:59 +01:00
missing_capability.h missing: move capabilities to missing_capability.h 2018-12-04 08:38:14 +01:00
missing_drm.h missing: re-add drm related entries 2018-12-07 12:46:55 +01:00
missing_ethtool.h missing: split network related entries 2018-12-03 10:31:05 +01:00
missing_fcntl.h missing: move fcntl related definitions to missing_fcntl.h 2018-12-06 13:25:24 +01:00
missing_fib_rules.h missing: re-add mistakenly dropped entries 2018-12-04 01:45:14 +01:00
missing_fou.h missing: split network related entries 2018-12-03 10:31:05 +01:00
missing_fs.h missing: move fs or mount related definitions to missing_fs.h 2018-12-06 13:30:43 +01:00
missing_if_bridge.h missing: split network related entries 2018-12-03 10:31:05 +01:00
missing_if_link.h missing_if_link.h: add IFLA_BOND_MODE 2019-01-11 17:37:36 +01:00
missing_if_tunnel.h missing: split network related entries 2018-12-03 10:31:05 +01:00
missing_input.h missing: use integer types used by kernel 2018-12-06 13:24:00 +01:00
missing_keyctl.h missing: move missing entries in keyctl.h to missing_keyctl.h 2018-12-04 07:42:32 +01:00
missing_magic.h missing: move entries defined in magic.h to missing_magic.h 2018-12-04 07:55:23 +01:00
missing_mman.h missing: add memfd related definitions to missing_mman.h 2018-12-06 13:25:24 +01:00
missing_network.h missing: add ARPHRD_IP6GRE 2018-12-07 11:48:41 +09:00
missing_prctl.h missing: move prctl related entries to missing_prctl.h 2018-12-04 08:34:46 +01:00
missing_random.h missing: move rand related definitions to missing_random.h 2018-12-06 13:26:55 +01:00
missing_resource.h missing: move resource related definitions to missing_resource.h 2018-12-06 13:25:24 +01:00
missing_sched.h missing: move sched.h related definitions to missing_sched.h 2018-12-06 13:28:28 +01:00
missing_securebits.h missing: rename securebits.h to missing_securebits.h 2018-12-04 07:49:24 +01:00
missing_socket.h missing: move socket related definitions to missing_socket.h 2018-12-06 13:25:24 +01:00
missing_stat.h missing: use integer types used by kernel 2018-12-06 13:24:00 +01:00
missing_stdlib.h missing: move definition of secure_getenv() to missing_stdlib.h 2018-12-06 13:26:55 +01:00
missing_syscall.h missing_syscall.h: include errno.h 2019-01-11 17:37:36 +01:00
missing_timerfd.h missing: move timer related definition to missing_timerfd.h 2018-12-06 13:25:24 +01:00
missing_type.h missing: move char{16,32}_t definitions to missing_type.h 2018-12-04 08:38:18 +01:00
missing_vxcan.h missing: split network related entries 2018-12-03 10:31:05 +01:00
mkdir-label.c basic/label: introduce mkdirat_label()/mkdirat_errno_wrapper() helpers 2018-07-30 15:54:03 +02:00
mkdir.c basic/label: introduce mkdirat_label()/mkdirat_errno_wrapper() helpers 2018-07-30 15:54:03 +02:00
mkdir.h basic/label: introduce mkdirat_label()/mkdirat_errno_wrapper() helpers 2018-07-30 15:54:03 +02:00
mountpoint-util.c mount-point: honour AT_SYMLINK_FOLLOW correctly 2018-12-08 22:43:55 +01:00
mountpoint-util.h Split out part of mount-util.c into mountpoint-util.c 2018-11-29 21:03:44 +01:00
MurmurHash2.c tree-wide: fix a couple of TABs 2018-05-22 16:13:45 +02:00
MurmurHash2.h tree-wide: use '#pragma once' for header guard 2018-08-30 06:10:43 +03:00
nss-util.h tree-wide: remove Lennart's copyright lines 2018-06-14 10:20:20 +02:00
ordered-set.c tree-wide: remove Lennart's copyright lines 2018-06-14 10:20:20 +02:00
ordered-set.h hash-func: add destructors for key and value 2018-12-02 11:59:07 +01:00
parse-util.c missing: drop old OOM related definitions 2018-12-06 13:24:37 +01:00
parse-util.h networkd: add support to configure ip rule port range and protocol. 2018-11-28 20:06:28 +05:30
path-util.c When parsing paths, reject anything above PATH_MAX 2018-12-10 11:57:26 +01:00
path-util.h basic/path-util: line-break PATH_FOREACH_PREFIX macros 2018-12-10 11:57:26 +01:00
prioq.c tree-wide: use SWAP_TWO a bit more 2018-11-26 22:17:34 +01:00
prioq.h util,test: introduce cleanup function prioq_freep() 2018-10-16 22:17:08 +09:00
proc-cmdline.c proc-cmdline: introduce new proc_cmdline_get_key_many() helper 2018-11-14 17:01:54 +01:00
proc-cmdline.h proc-cmdline: introduce new proc_cmdline_get_key_many() helper 2018-11-14 17:01:54 +01:00
process-util.c basic/process-util: limit command line lengths to _SC_ARG_MAX 2019-01-09 23:41:53 +01:00
process-util.h process-util: add new FORK_RLIMIT_NOFILE_SAFE flag for safe_fork() 2018-12-01 12:50:45 +01:00
procfs-util.c procfs-util: drop unnecessary zero initializations (#8321) 2018-03-01 11:27:06 +01:00
procfs-util.h procfs-util: add APIs to get consumed CPU time and used memory from /proc 2018-02-09 17:32:26 +01:00
random-util.c random-util: drop duplicated linux/random.h 2018-12-06 13:25:24 +01:00
random-util.h random-util: allow RDRAND to be used in 32-bit x86 binaries 2018-11-10 14:56:53 +01:00
ratelimit.c tree-wide: remove Lennart's copyright lines 2018-06-14 10:20:20 +02:00
ratelimit.h tree-wide: remove Lennart's copyright lines 2018-06-14 10:20:20 +02:00
raw-clone.h basic: add missing comma in raw_clone assembly for sparc 2018-06-27 09:16:04 -07:00
raw-reboot.h basic: add a common syscall wrapper around reboot() 2018-02-22 10:42:06 +01:00
refcnt.h refcnt: introduce DEFINE_ATOMIC_REF_UNREF_FUNC() macro and friends 2018-08-28 05:09:40 +09:00
replace-var.c tree-wide: remove Lennart's copyright lines 2018-06-14 10:20:20 +02:00
replace-var.h tree-wide: remove Lennart's copyright lines 2018-06-14 10:20:20 +02:00
rlimit-util.c move src/shared/rlimit-util.[ch] → src/basic/ 2018-12-01 12:50:45 +01:00
rlimit-util.h move src/shared/rlimit-util.[ch] → src/basic/ 2018-12-01 12:50:45 +01:00
rm-rf.c Split out part of mount-util.c into mountpoint-util.c 2018-11-29 21:03:44 +01:00
rm-rf.h machine: add support for importing containers from plain directories 2018-11-26 18:09:01 +01:00
selinux-util.c tree-wide: rename path_join_many() to path_join() 2018-11-30 10:59:47 +01:00
selinux-util.h selinux: introduce mac_selinux_create_file_prepare_at() 2018-07-30 15:54:03 +02:00
set.h hash-func: add destructors for key and value 2018-12-02 11:59:07 +01:00
sigbus.c void call of page_size guarantees that sysconf is not called from signal handler 2018-07-26 15:39:12 +02:00
sigbus.h tree-wide: remove Lennart's copyright lines 2018-06-14 10:20:20 +02:00
signal-util.c tree-wide: remove Lennart's copyright lines 2018-06-14 10:20:20 +02:00
signal-util.h tree-wide: remove Lennart's copyright lines 2018-06-14 10:20:20 +02:00
siphash24.c Remove 'inline' attributes from static functions in .c files (#11426) 2019-01-15 08:12:28 +01:00
siphash24.h tree-wide: use c99 static for array size declarations 2019-01-04 12:37:25 +01:00
smack-util.c tree-wide: set WRITE_STRING_FILE_DISABLE_BUFFER flag when we write files under /proc or /sys 2018-11-06 21:24:03 +09:00
smack-util.h smack: introduce mac_smack_fix_at() 2018-07-30 15:54:03 +02:00
socket-label.c basic/socket-util: use c-escaping to print unprintable socket paths 2018-11-30 21:58:47 +01:00
socket-util.c socket-util: Let's trick out ubsan when it validate struct sockaddr_un.sun_path[] 2018-12-04 23:28:14 +01:00
socket-util.h util: drop missing.h from socket-util.h 2018-12-06 13:31:16 +01:00
sparse-endian.h tree-wide: use __ prefixed gcc attributes (#10843) 2018-11-20 12:34:08 +09:00
special.h tree-wide: remove Lennart's copyright lines 2018-06-14 10:20:20 +02:00
stat-util.c Merge pull request #11345 from kirbyfan64/tmpfiles-c-empty 2019-01-15 16:54:19 +01:00
stat-util.h stat-util: Add dir_is_empty_at 2019-01-08 10:23:17 -06:00
static-destruct.h Merge pull request #11031 from poettering/gcc-attr-cleanup 2018-12-03 21:59:00 +01:00
stdio-util.h util: initialize _argtypes in VA_FORMAT_ADVANCE when systemd is built with MSan 2018-11-06 19:01:32 +01:00
strbuf.c tree-wide: use typesafe_bsearch() or typesafe_bsearch_r() 2018-09-19 08:08:03 +09:00
strbuf.h tree-wide: drop double newline 2018-06-29 11:02:17 +09:00
string-table.c tree-wide: remove Lennart's copyright lines 2018-06-14 10:20:20 +02:00
string-table.h string-table: do not ignore 'scope' argument 2018-08-28 12:40:25 +09:00
string-util.c tree-wide: use c99 static for array size declarations 2019-01-04 12:37:25 +01:00
string-util.h string-util: fix prototype of explicit_bzero_safe() (#10513) 2018-10-25 11:41:55 +09:00
strv.c strv: wrap strv_new() in a macro so that NULL sentinel is implicit 2018-10-31 18:00:52 +01:00
strv.h strv: rework FOREACH_STRING() macro 2019-01-16 12:29:30 +01:00
strxcpyx.c strxcpyx: minor coding style updates 2018-10-15 19:35:00 +02:00
strxcpyx.h tree-wide: drop double newline 2018-06-29 11:02:17 +09:00
syslog-util.c syslog: fix segfault in syslog_parse_priority() 2018-08-08 18:27:15 +09:00
syslog-util.h tree-wide: remove Lennart's copyright lines 2018-06-14 10:20:20 +02:00
terminal-util.c tree-wide: port some code over to safe_fgetc() 2018-12-18 15:03:00 +01:00
terminal-util.h resolvectl: color "comment" output grey 2018-12-05 18:46:23 +01:00
time-util.c build: don't include shared's "serialize.h" in basic's "time-util.c" 2018-12-29 19:27:23 +09:00
time-util.h core: rework serialization 2018-10-26 10:52:41 +02:00
tmpfile-util.c basic/tmpfile-util.c: fix build without O_TMPFILE 2019-01-11 17:37:36 +01:00
tmpfile-util.h util-lib: split out all temporary file related calls into tmpfiles-util.c 2018-12-02 13:22:29 +01:00
umask-util.h tree-wide: remove Lennart's copyright lines 2018-06-14 10:20:20 +02:00
unaligned.h tree-wide: use __ prefixed gcc attributes (#10843) 2018-11-20 12:34:08 +09:00
unit-def.c Make Watchdog Signal Configurable 2018-09-26 16:14:29 +02:00
unit-def.h Make Watchdog Signal Configurable 2018-09-26 16:14:29 +02:00
unit-name.c tree-wide: remove Lennart's copyright lines 2018-06-14 10:20:20 +02:00
unit-name.h tree-wide: always declare bitflag enums the same way 2019-01-07 17:50:39 +01:00
user-util.c user-util: remove unsed NOLEGACY define 2019-01-16 18:14:50 +01:00
user-util.h basic/user-util: properly protect use of gshadow 2018-11-22 00:57:08 +01:00
utf8.c utf8: add utf8_to_utf16() helper 2018-09-25 15:57:47 +02:00
utf8.h missing: move char{16,32}_t definitions to missing_type.h 2018-12-04 08:38:18 +01:00
util.c Print the systemd version in a format that dracut likes 2019-01-06 13:57:31 +01:00
util.h Revert "nss: prevent PROTECT_ERRNO from squashing changes to *errnop" 2019-01-10 21:23:14 +01:00
version.h.in meson: generate version tag from git 2018-12-21 13:43:20 +01:00
virt.c Move LONG_LINE_MAX definition to fileio.h 2018-11-14 16:25:32 +01:00
virt.h tree-wide: remove Lennart's copyright lines 2018-06-14 10:20:20 +02:00
xattr-util.c build-sys: Detect whether struct statx is defined in sys/stat.h 2018-07-16 11:14:29 +02:00
xattr-util.h tree-wide: remove Lennart's copyright lines 2018-06-14 10:20:20 +02:00