summaryrefslogtreecommitdiff
path: root/man
diff options
context:
space:
mode:
authorSven Eden <yamakuzure@gmx.net>2018-06-01 20:20:09 +0200
committerSven Eden <yamakuzure@gmx.net>2018-06-04 10:32:04 +0200
commit1be26d51ffd355e1e38fd66c76b296594daf5ed0 (patch)
treef2deecda3ccf466b14f3be6f5821982faffba0d3 /man
parent523846fd2d605f9511a2994596eda76582785f66 (diff)
Prep v238: Applied some upstream updates to man (1/5)
Diffstat (limited to 'man')
-rw-r--r--man/elogind.xml14
-rw-r--r--man/rules/meson.build787
-rw-r--r--man/sd-login.xml277
-rw-r--r--man/sd_machine_get_class.xml2
-rw-r--r--man/sd_pid_get_owner_uid.xml (renamed from man/sd_pid_get_session.xml)114
5 files changed, 346 insertions, 848 deletions
diff --git a/man/elogind.xml b/man/elogind.xml
index 274f155e8..3b632560d 100644
--- a/man/elogind.xml
+++ b/man/elogind.xml
@@ -342,20 +342,24 @@
to all zeros.</para></listitem>
</varlistentry>
+ <varlistentry>
+ <term><option>&#x2D;&#x2D;service-watchdogs=</option></term>
+
+ <listitem><para>Globally enable/disable all service watchdog timeouts and emergency
+ actions. This setting may also be specified during boot, on the kernel
+ command line via the <varname>systemd.service_watchdogs=</varname>
+ option, see below. Defaults to enabled.</para></listitem>
+ </varlistentry>
+
<xi:include href="standard-options.xml" xpointer="help" />
<xi:include href="standard-options.xml" xpointer="version" />
else -->
<varlistentry>
<term><option>-D</option></term>
<term><option>--daemon</option></term>
- <term><option>--service-watchdogs=</option></term>
<listitem><para>Daemonize elogind by double-forking
into background.</para></listitem>
- <listitem><para>Globally enable/disable all service watchdog timeouts and emergency
- actions. This setting may also be specified during boot, on the kernel
- command line via the <varname>elogind.service_watchdogs=</varname>
- option, see below. Defaults to enabled.</para></listitem>
</varlistentry>
<varlistentry>
diff --git a/man/rules/meson.build b/man/rules/meson.build
index 5248d3267..e1fb22e90 100644
--- a/man/rules/meson.build
+++ b/man/rules/meson.build
@@ -1,791 +1,4 @@
# Do not edit. Generated by make-man-rules.py.
manpages = [
-['binfmt.d', '5', [], 'ENABLE_BINFMT'],
- ['bootctl', '1', [], 'ENABLE_EFI'],
- ['bootup', '7', [], ''],
- ['busctl', '1', [], ''],
- ['coredump.conf', '5', ['coredump.conf.d'], 'ENABLE_COREDUMP'],
- ['coredumpctl', '1', [], 'ENABLE_COREDUMP'],
- ['crypttab', '5', [], 'HAVE_LIBCRYPTSETUP'],
- ['daemon', '7', [], ''],
- ['dnssec-trust-anchors.d',
- '5',
- ['elogind.negative', 'elogind.positive'],
- 'ENABLE_RESOLVE'],
- ['environment.d', '5', [], 'ENABLE_ENVIRONMENT_D'],
- ['file-hierarchy', '7', [], ''],
- ['halt', '8', ['poweroff', 'reboot'], ''],
- ['hostname', '5', [], ''],
- ['hostnamectl', '1', [], 'ENABLE_HOSTNAMED'],
- ['hwdb', '7', [], 'ENABLE_HWDB'],
- ['journal-remote.conf', '5', ['journal-remote.conf.d'], 'HAVE_MICROHTTPD'],
- ['journal-upload.conf', '5', ['journal-upload.conf.d'], 'HAVE_MICROHTTPD'],
- ['journalctl', '1', [], ''],
- ['journald.conf', '5', ['journald.conf.d'], ''],
- ['kernel-command-line', '7', [], ''],
- ['kernel-install', '8', [], ''],
- ['libudev', '3', [], ''],
- ['locale.conf', '5', [], ''],
- ['localectl', '1', [], 'ENABLE_LOCALED'],
- ['localtime', '5', [], ''],
- ['loginctl', '1', [], 'ENABLE_LOGIND'],
- ['logind.conf', '5', ['logind.conf.d'], 'ENABLE_LOGIND'],
- ['machine-id', '5', [], ''],
- ['machine-info', '5', [], ''],
- ['machinectl', '1', [], 'ENABLE_MACHINED'],
- ['modules-load.d', '5', [], 'HAVE_KMOD'],
- ['networkctl', '1', [], 'ENABLE_NETWORKD'],
- ['networkd.conf', '5', ['networkd.conf.d'], 'ENABLE_NETWORKD'],
- ['nss-myhostname', '8', ['libnss_myhostname.so.2'], 'ENABLE_MYHOSTNAME'],
- ['nss-mymachines', '8', ['libnss_mymachines.so.2'], 'ENABLE_MACHINED'],
- ['nss-resolve', '8', ['libnss_resolve.so.2'], 'ENABLE_RESOLVE'],
- ['nss-elogind', '8', ['libnss_elogind.so.2'], 'ENABLE_NSS_SYSTEMD'],
- ['os-release', '5', [], ''],
- ['pam_elogind', '8', [], 'HAVE_PAM'],
- ['resolved.conf', '5', ['resolved.conf.d'], 'ENABLE_RESOLVE'],
- ['runlevel', '8', [], 'ENABLE_UTMP'],
- ['sd-bus-errors',
- '3',
- ['SD_BUS_ERROR_ACCESS_DENIED',
- 'SD_BUS_ERROR_ADDRESS_IN_USE',
- 'SD_BUS_ERROR_AUTH_FAILED',
- 'SD_BUS_ERROR_BAD_ADDRESS',
- 'SD_BUS_ERROR_DISCONNECTED',
- 'SD_BUS_ERROR_FAILED',
- 'SD_BUS_ERROR_FILE_EXISTS',
- 'SD_BUS_ERROR_FILE_NOT_FOUND',
- 'SD_BUS_ERROR_INCONSISTENT_MESSAGE',
- 'SD_BUS_ERROR_INTERACTIVE_AUTHORIZATION_REQUIRED',
- 'SD_BUS_ERROR_INVALID_ARGS',
- 'SD_BUS_ERROR_INVALID_SIGNATURE',
- 'SD_BUS_ERROR_IO_ERROR',
- 'SD_BUS_ERROR_LIMITS_EXCEEDED',
- 'SD_BUS_ERROR_MATCH_RULE_INVALID',
- 'SD_BUS_ERROR_MATCH_RULE_NOT_FOUND',
- 'SD_BUS_ERROR_NAME_HAS_NO_OWNER',
- 'SD_BUS_ERROR_NOT_SUPPORTED',
- 'SD_BUS_ERROR_NO_MEMORY',
- 'SD_BUS_ERROR_NO_NETWORK',
- 'SD_BUS_ERROR_NO_REPLY',
- 'SD_BUS_ERROR_NO_SERVER',
- 'SD_BUS_ERROR_PROPERTY_READ_ONLY',
- 'SD_BUS_ERROR_SERVICE_UNKNOWN',
- 'SD_BUS_ERROR_TIMEOUT',
- 'SD_BUS_ERROR_UNIX_PROCESS_ID_UNKNOWN',
- 'SD_BUS_ERROR_UNKNOWN_INTERFACE',
- 'SD_BUS_ERROR_UNKNOWN_METHOD',
- 'SD_BUS_ERROR_UNKNOWN_OBJECT',
- 'SD_BUS_ERROR_UNKNOWN_PROPERTY'],
- ''],
- ['sd-bus', '3', [], ''],
- ['sd-daemon',
- '3',
- ['SD_ALERT',
- 'SD_CRIT',
- 'SD_DEBUG',
- 'SD_EMERG',
- 'SD_ERR',
- 'SD_INFO',
- 'SD_NOTICE',
- 'SD_WARNING'],
- ''],
- ['sd-event', '3', [], ''],
- ['sd-id128',
- '3',
- ['SD_ID128_CONST_STR',
- 'SD_ID128_FORMAT_STR',
- 'SD_ID128_FORMAT_VAL',
- 'SD_ID128_MAKE',
- 'SD_ID128_MAKE_STR',
- 'SD_ID128_NULL',
- 'sd_id128_equal',
- 'sd_id128_is_null',
- 'sd_id128_t'],
- ''],
- ['sd-journal', '3', [], ''],
- ['sd-login', '3', [], 'HAVE_PAM'],
- ['sd_booted', '3', [], ''],
- ['sd_bus_add_match',
- '3',
- ['sd_bus_add_match_async',
- 'sd_bus_match_signal',
- 'sd_bus_match_signal_async'],
- ''],
- ['sd_bus_creds_get_pid',
- '3',
- ['sd_bus_creds_get_audit_login_uid',
- 'sd_bus_creds_get_audit_session_id',
- 'sd_bus_creds_get_cgroup',
- 'sd_bus_creds_get_cmdline',
- 'sd_bus_creds_get_comm',
- 'sd_bus_creds_get_description',
- 'sd_bus_creds_get_egid',
- 'sd_bus_creds_get_euid',
- 'sd_bus_creds_get_exe',
- 'sd_bus_creds_get_fsgid',
- 'sd_bus_creds_get_fsuid',
- 'sd_bus_creds_get_gid',
- 'sd_bus_creds_get_owner_uid',
- 'sd_bus_creds_get_ppid',
- 'sd_bus_creds_get_selinux_context',
- 'sd_bus_creds_get_session',
- 'sd_bus_creds_get_sgid',
- 'sd_bus_creds_get_slice',
- 'sd_bus_creds_get_suid',
- 'sd_bus_creds_get_supplementary_gids',
- 'sd_bus_creds_get_tid',
- 'sd_bus_creds_get_tid_comm',
- 'sd_bus_creds_get_tty',
- 'sd_bus_creds_get_uid',
- 'sd_bus_creds_get_unique_name',
- 'sd_bus_creds_get_unit',
- 'sd_bus_creds_get_user_slice',
- 'sd_bus_creds_get_user_unit',
- 'sd_bus_creds_get_well_known_names',
- 'sd_bus_creds_has_bounding_cap',
- 'sd_bus_creds_has_effective_cap',
- 'sd_bus_creds_has_inheritable_cap',
- 'sd_bus_creds_has_permitted_cap'],
- ''],
- ['sd_bus_creds_new_from_pid',
- '3',
- ['sd_bus_creds_get_augmented_mask',
- 'sd_bus_creds_get_mask',
- 'sd_bus_creds_ref',
- 'sd_bus_creds_unref',
- 'sd_bus_creds_unrefp'],
- ''],
- ['sd_bus_default',
- '3',
- ['sd_bus_default_system',
- 'sd_bus_default_user',
- 'sd_bus_open',
- 'sd_bus_open_system',
- 'sd_bus_open_system_machine',
- 'sd_bus_open_system_remote',
- 'sd_bus_open_user'],
- ''],
- ['sd_bus_error',
- '3',
- ['SD_BUS_ERROR_MAKE_CONST',
- 'SD_BUS_ERROR_NULL',
- 'sd_bus_error_copy',
- 'sd_bus_error_free',
- 'sd_bus_error_get_errno',
- 'sd_bus_error_has_name',
- 'sd_bus_error_is_set',
- 'sd_bus_error_set',
- 'sd_bus_error_set_const',
- 'sd_bus_error_set_errno',
- 'sd_bus_error_set_errnof',
- 'sd_bus_error_set_errnofv',
- 'sd_bus_error_setf'],
- ''],
- ['sd_bus_error_add_map',
- '3',
- ['SD_BUS_ERROR_END', 'SD_BUS_ERROR_MAP', 'sd_bus_error_map'],
- ''],
- ['sd_bus_get_fd', '3', [], ''],
- ['sd_bus_get_n_queued_read', '3', ['sd_bus_get_n_queued_write'], ''],
- ['sd_bus_is_open', '3', ['sd_bus_is_ready'], ''],
- ['sd_bus_message_append', '3', ['sd_bus_message_appendv'], ''],
- ['sd_bus_message_append_array',
- '3',
- ['sd_bus_message_append_array_iovec',
- 'sd_bus_message_append_array_memfd',
- 'sd_bus_message_append_array_space'],
- ''],
- ['sd_bus_message_append_basic', '3', [], ''],
- ['sd_bus_message_append_string_memfd',
- '3',
- ['sd_bus_message_append_string_iovec', 'sd_bus_message_append_string_space'],
- ''],
- ['sd_bus_message_append_strv', '3', [], ''],
- ['sd_bus_message_get_cookie', '3', ['sd_bus_message_get_reply_cookie'], ''],
- ['sd_bus_message_get_monotonic_usec',
- '3',
- ['sd_bus_message_get_realtime_usec', 'sd_bus_message_get_seqnum'],
- ''],
- ['sd_bus_message_read_basic', '3', [], ''],
- ['sd_bus_message_set_destination', '3', ['sd_bus_message_set_sender'], ''],
- ['sd_bus_negotiate_fds',
- '3',
- ['sd_bus_negotiate_creds', 'sd_bus_negotiate_timestamp'],
- ''],
- ['sd_bus_new', '3', ['sd_bus_ref', 'sd_bus_unref', 'sd_bus_unrefp'], ''],
- ['sd_bus_path_encode',
- '3',
- ['sd_bus_path_decode', 'sd_bus_path_decode_many', 'sd_bus_path_encode_many'],
- ''],
- ['sd_bus_process', '3', [], ''],
- ['sd_bus_request_name',
- '3',
- ['sd_bus_release_name',
- 'sd_bus_release_name_async',
- 'sd_bus_request_name_async'],
- ''],
- ['sd_bus_set_connected_signal', '3', ['sd_bus_get_connected_signal'], ''],
- ['sd_bus_set_sender', '3', ['sd_bus_get_sender'], ''],
- ['sd_bus_set_watch_bind', '3', ['sd_bus_get_watch_bind'], ''],
- ['sd_bus_track_add_name',
- '3',
- ['sd_bus_track_add_sender',
- 'sd_bus_track_contains',
- 'sd_bus_track_count',
- 'sd_bus_track_count_name',
- 'sd_bus_track_count_sender',
- 'sd_bus_track_first',
- 'sd_bus_track_next',
- 'sd_bus_track_remove_name',
- 'sd_bus_track_remove_sender'],
- ''],
- ['sd_bus_track_new',
- '3',
- ['sd_bus_track_get_bus',
- 'sd_bus_track_get_recursive',
- 'sd_bus_track_get_userdata',
- 'sd_bus_track_ref',
- 'sd_bus_track_set_recursive',
- 'sd_bus_track_set_userdata',
- 'sd_bus_track_unref',
- 'sd_bus_track_unrefp'],
- ''],
- ['sd_event_add_child',
- '3',
- ['sd_event_child_handler_t', 'sd_event_source_get_child_pid'],
- ''],
- ['sd_event_add_defer',
- '3',
- ['sd_event_add_exit', 'sd_event_add_post', 'sd_event_handler_t'],
- ''],
- ['sd_event_add_io',
- '3',
- ['sd_event_io_handler_t',
- 'sd_event_source',
- 'sd_event_source_get_io_events',
- 'sd_event_source_get_io_fd',
- 'sd_event_source_get_io_revents',
- 'sd_event_source_set_io_events',
- 'sd_event_source_set_io_fd'],
- ''],
- ['sd_event_add_signal',
- '3',
- ['sd_event_signal_handler_t', 'sd_event_source_get_signal'],
- ''],
- ['sd_event_add_time',
- '3',
- ['sd_event_source_get_time',
- 'sd_event_source_get_time_accuracy',
- 'sd_event_source_get_time_clock',
- 'sd_event_source_set_time',
- 'sd_event_source_set_time_accuracy',
- 'sd_event_time_handler_t'],
- ''],
- ['sd_event_exit', '3', ['sd_event_get_exit_code'], ''],
- ['sd_event_get_fd', '3', [], ''],
- ['sd_event_new',
- '3',
- ['sd_event',
- 'sd_event_default',
- 'sd_event_get_tid',
- 'sd_event_ref',
- 'sd_event_unref',
- 'sd_event_unrefp'],
- ''],
- ['sd_event_now', '3', [], ''],
- ['sd_event_run', '3', ['sd_event_loop'], ''],
- ['sd_event_set_watchdog', '3', ['sd_event_get_watchdog'], ''],
- ['sd_event_source_get_event', '3', [], ''],
- ['sd_event_source_get_pending', '3', [], ''],
- ['sd_event_source_set_description',
- '3',
- ['sd_event_source_get_description'],
- ''],
- ['sd_event_source_set_enabled',
- '3',
- ['SD_EVENT_OFF',
- 'SD_EVENT_ON',
- 'SD_EVENT_ONESHOT',
- 'sd_event_source_get_enabled'],
- ''],
- ['sd_event_source_set_prepare', '3', [], ''],
- ['sd_event_source_set_priority',
- '3',
- ['SD_EVENT_PRIORITY_IDLE',
- 'SD_EVENT_PRIORITY_IMPORTANT',
- 'SD_EVENT_PRIORITY_NORMAL',
- 'sd_event_source_get_priority'],
- ''],
- ['sd_event_source_set_userdata', '3', ['sd_event_source_get_userdata'], ''],
- ['sd_event_source_unref',
- '3',
- ['sd_event_source_ref', 'sd_event_source_unrefp'],
- ''],
- ['sd_event_wait',
- '3',
- ['SD_EVENT_ARMED',
- 'SD_EVENT_EXITING',
- 'SD_EVENT_FINISHED',
- 'SD_EVENT_INITIAL',
- 'SD_EVENT_PENDING',
- 'SD_EVENT_PREPARING',
- 'SD_EVENT_RUNNING',
- 'sd_event_dispatch',
- 'sd_event_get_iteration',
- 'sd_event_get_state',
- 'sd_event_prepare'],
- ''],
- ['sd_get_seats',
- '3',
- ['sd_get_machine_names', 'sd_get_sessions', 'sd_get_uids'],
- 'HAVE_PAM'],
- ['sd_id128_get_machine',
- '3',
- ['sd_id128_get_boot',
- 'sd_id128_get_invocation',
- 'sd_id128_get_machine_app_specific'],
- ''],
- ['sd_id128_randomize', '3', [], ''],
- ['sd_id128_to_string', '3', ['sd_id128_from_string'], ''],
- ['sd_is_fifo',
- '3',
- ['sd_is_mq',
- 'sd_is_socket',
- 'sd_is_socket_inet',
- 'sd_is_socket_sockaddr',
- 'sd_is_socket_unix',
- 'sd_is_special'],
- ''],
- ['sd_journal_add_match',
- '3',
- ['sd_journal_add_conjunction',
- 'sd_journal_add_disjunction',
- 'sd_journal_flush_matches'],
- ''],
- ['sd_journal_enumerate_fields',
- '3',
- ['SD_JOURNAL_FOREACH_FIELD', 'sd_journal_restart_fields'],
- ''],
- ['sd_journal_get_catalog', '3', ['sd_journal_get_catalog_for_message_id'], ''],
- ['sd_journal_get_cursor', '3', ['sd_journal_test_cursor'], ''],
- ['sd_journal_get_cutoff_realtime_usec',
- '3',
- ['sd_journal_get_cutoff_monotonic_usec'],
- ''],
- ['sd_journal_get_data',
- '3',
- ['SD_JOURNAL_FOREACH_DATA',
- 'sd_journal_enumerate_data',
- 'sd_journal_get_data_threshold',
- 'sd_journal_restart_data',
- 'sd_journal_set_data_threshold'],
- ''],
- ['sd_journal_get_fd',
- '3',
- ['SD_JOURNAL_APPEND',
- 'SD_JOURNAL_INVALIDATE',
- 'SD_JOURNAL_NOP',
- 'sd_journal_get_events',
- 'sd_journal_get_timeout',
- 'sd_journal_process',
- 'sd_journal_reliable_fd',
- 'sd_journal_wait'],
- ''],
- ['sd_journal_get_realtime_usec', '3', ['sd_journal_get_monotonic_usec'], ''],
- ['sd_journal_get_usage', '3', [], ''],
- ['sd_journal_has_runtime_files', '3', ['sd_journal_has_persistent_files'], ''],
- ['sd_journal_next',
- '3',
- ['SD_JOURNAL_FOREACH',
- 'SD_JOURNAL_FOREACH_BACKWARDS',
- 'sd_journal_next_skip',
- 'sd_journal_previous',
- 'sd_journal_previous_skip'],
- ''],
- ['sd_journal_open',
- '3',
- ['SD_JOURNAL_CURRENT_USER',
- 'SD_JOURNAL_LOCAL_ONLY',
- 'SD_JOURNAL_OS_ROOT',
- 'SD_JOURNAL_RUNTIME_ONLY',
- 'SD_JOURNAL_SYSTEM',
- 'sd_journal',
- 'sd_journal_close',
- 'sd_journal_open_directory',
- 'sd_journal_open_directory_fd',
- 'sd_journal_open_files',
- 'sd_journal_open_files_fd'],
- ''],
- ['sd_journal_print',
- '3',
- ['SD_JOURNAL_SUPPRESS_LOCATION',
- 'sd_journal_perror',
- 'sd_journal_printv',
- 'sd_journal_send',
- 'sd_journal_sendv'],
- ''],
- ['sd_journal_query_unique',
- '3',
- ['SD_JOURNAL_FOREACH_UNIQUE',
- 'sd_journal_enumerate_unique',
- 'sd_journal_restart_unique'],
- ''],
- ['sd_journal_seek_head',
- '3',
- ['sd_journal_seek_cursor',
- 'sd_journal_seek_monotonic_usec',
- 'sd_journal_seek_realtime_usec',
- 'sd_journal_seek_tail'],
- ''],
- ['sd_journal_stream_fd', '3', [], ''],
- ['sd_listen_fds',
- '3',
- ['SD_LISTEN_FDS_START', 'sd_listen_fds_with_names'],
- ''],
- ['sd_login_monitor_new',
- '3',
- ['sd_login_monitor',
- 'sd_login_monitor_flush',
- 'sd_login_monitor_get_events',
- 'sd_login_monitor_get_fd',
- 'sd_login_monitor_get_timeout',
- 'sd_login_monitor_unref',
- 'sd_login_monitor_unrefp'],
- 'HAVE_PAM'],
- ['sd_machine_get_class', '3', ['sd_machine_get_ifindices'], ''],
- ['sd_notify',
- '3',
- ['sd_notifyf', 'sd_pid_notify', 'sd_pid_notify_with_fds', 'sd_pid_notifyf'],
- ''],
- ['sd_pid_get_owner_uid',
- '3',
- ['sd_peer_get_cgroup',
- 'sd_peer_get_machine_name',
- 'sd_peer_get_owner_uid',
- 'sd_peer_get_session',
- 'sd_peer_get_slice',
- 'sd_peer_get_unit',
- 'sd_peer_get_user_slice',
- 'sd_peer_get_user_unit',
- 'sd_pid_get_cgroup',
- 'sd_pid_get_machine_name',
- 'sd_pid_get_session',
- 'sd_pid_get_slice',
- 'sd_pid_get_unit',
- 'sd_pid_get_user_slice',
- 'sd_pid_get_user_unit'],
- 'HAVE_PAM'],
- ['sd_seat_get_active',
- '3',
- ['sd_seat_can_graphical',
- 'sd_seat_can_multi_session',
- 'sd_seat_can_tty',
- 'sd_seat_get_sessions'],
- 'HAVE_PAM'],
- ['sd_session_is_active',
- '3',
- ['sd_session_get_class',
- 'sd_session_get_desktop',
- 'sd_session_get_display',
- 'sd_session_get_remote_host',
- 'sd_session_get_remote_user',
- 'sd_session_get_seat',
- 'sd_session_get_service',
- 'sd_session_get_state',
- 'sd_session_get_tty',
- 'sd_session_get_type',
- 'sd_session_get_uid',
- 'sd_session_get_vt',
- 'sd_session_is_remote'],
- 'HAVE_PAM'],
- ['sd_uid_get_state',
- '3',
- ['sd_uid_get_display',
- 'sd_uid_get_seats',
- 'sd_uid_get_sessions',
- 'sd_uid_is_on_seat'],
- 'HAVE_PAM'],
- ['sd_watchdog_enabled', '3', [], ''],
- ['shutdown', '8', [], ''],
- ['sysctl.d', '5', [], ''],
- ['systemctl', '1', [], ''],
- ['elogind-analyze', '1', [], ''],
- ['elogind-ask-password-console.service',
- '8',
- ['elogind-ask-password-console.path',
- 'elogind-ask-password-wall.path',
- 'elogind-ask-password-wall.service'],
- ''],
- ['elogind-ask-password', '1', [], ''],
- ['elogind-backlight@.service', '8', ['elogind-backlight'], 'ENABLE_BACKLIGHT'],
- ['elogind-binfmt.service', '8', ['elogind-binfmt'], 'ENABLE_BINFMT'],
- ['elogind-cat', '1', [], ''],
- ['elogind-cgls', '1', [], ''],
- ['elogind-cgtop', '1', [], ''],
- ['elogind-coredump',
- '8',
- ['elogind-coredump.socket', 'elogind-coredump@.service'],
- 'ENABLE_COREDUMP'],
- ['elogind-cryptsetup-generator', '8', [], 'HAVE_LIBCRYPTSETUP'],
- ['elogind-cryptsetup@.service',
- '8',
- ['elogind-cryptsetup'],
- 'HAVE_LIBCRYPTSETUP'],
- ['elogind-debug-generator', '8', [], ''],
- ['elogind-delta', '1', [], ''],
- ['elogind-detect-virt', '1', [], ''],
- ['elogind-environment-d-generator',
- '8',
- ['30-elogind-environment-d-generator'],
- 'ENABLE_ENVIRONMENT_D'],
- ['elogind-escape', '1', [], ''],
- ['elogind-firstboot', '1', ['elogind-firstboot.service'], 'ENABLE_FIRSTBOOT'],
- ['elogind-fsck@.service',
- '8',
- ['elogind-fsck', 'elogind-fsck-root.service'],
- ''],
- ['elogind-fstab-generator', '8', [], ''],
- ['elogind-getty-generator', '8', [], ''],
- ['elogind-gpt-auto-generator', '8', [], ''],
- ['elogind-halt.service',
- '8',
- ['elogind-kexec.service',
- 'elogind-poweroff.service',
- 'elogind-reboot.service',
- 'elogind-shutdown'],
- ''],
- ['elogind-hibernate-resume-generator', '8', [], 'ENABLE_HIBERNATE'],
- ['elogind-hibernate-resume@.service',
- '8',
- ['elogind-hibernate-resume'],
- 'ENABLE_HIBERNATE'],
- ['elogind-hostnamed.service', '8', ['elogind-hostnamed'], 'ENABLE_HOSTNAMED'],
- ['elogind-hwdb', '8', [], 'ENABLE_HWDB'],
- ['elogind-importd.service', '8', ['elogind-importd'], 'ENABLE_IMPORTD'],
- ['elogind-inhibit', '1', [], ''],
- ['elogind-initctl.service',
- '8',
- ['elogind-initctl', 'elogind-initctl.socket'],
- ''],
- ['elogind-journal-gatewayd.service',
- '8',
- ['elogind-journal-gatewayd', 'elogind-journal-gatewayd.socket'],
- 'HAVE_MICROHTTPD'],
- ['elogind-journal-remote', '8', [], 'HAVE_MICROHTTPD'],
- ['elogind-journal-upload', '8', [], 'HAVE_MICROHTTPD'],
- ['elogind-journald.service',
- '8',
- ['elogind-journald',
- 'elogind-journald-audit.socket',
- 'elogind-journald-dev-log.socket',
- 'elogind-journald.socket'],
- ''],
- ['elogind-localed.service', '8', ['elogind-localed'], 'ENABLE_LOCALED'],
- ['elogind.service', '8', ['elogind'], 'ENABLE_LOGIND'],
- ['elogind-machine-id-commit.service', '8', [], ''],
- ['elogind-machine-id-setup', '1', [], ''],
- ['elogind-machined.service', '8', ['elogind-machined'], 'ENABLE_MACHINED'],
- ['elogind-makefs@.service',
- '8',
- ['elogind-growfs',
- 'elogind-growfs@.service',
- 'elogind-makefs',
- 'elogind-makeswap@.service'],
- ''],
- ['elogind-modules-load.service', '8', ['elogind-modules-load'], 'HAVE_KMOD'],
- ['elogind-mount', '1', ['elogind-umount'], ''],
- ['elogind-networkd-wait-online.service',
- '8',
- ['elogind-networkd-wait-online'],
- 'ENABLE_NETWORKD'],
- ['elogind-networkd.service', '8', ['elogind-networkd'], 'ENABLE_NETWORKD'],
- ['elogind-notify', '1', [], ''],
- ['elogind-nspawn', '1', [], ''],
- ['elogind-path', '1', [], ''],
- ['elogind-quotacheck.service',
- '8',
- ['elogind-quotacheck'],
- 'ENABLE_QUOTACHECK'],
- ['elogind-random-seed.service',
- '8',
- ['elogind-random-seed'],
- 'ENABLE_RANDOMSEED'],
- ['elogind-rc-local-generator', '8', [], ''],
- ['elogind-remount-fs.service', '8', ['elogind-remount-fs'], ''],
- ['elogind-resolve', '1', [], 'ENABLE_RESOLVE'],
- ['elogind-resolved.service', '8', ['elogind-resolved'], 'ENABLE_RESOLVE'],
- ['elogind-rfkill.service',
- '8',
- ['elogind-rfkill', 'elogind-rfkill.socket'],
- 'ENABLE_RFKILL'],
- ['elogind-run', '1', [], ''],
- ['elogind-sleep.conf', '5', ['sleep.conf.d'], ''],
- ['elogind-socket-activate', '1', [], ''],
- ['elogind-socket-proxyd', '8', [], ''],
- ['elogind-suspend.service',
- '8',
- ['elogind-hibernate.service',
- 'elogind-hybrid-sleep.service',
- 'elogind-sleep'],
- ''],
- ['elogind-sysctl.service', '8', ['elogind-sysctl'], ''],
- ['elogind-system-update-generator', '8', [], ''],
- ['elogind-system.conf',
- '5',
- ['system.conf.d', 'elogind-user.conf', 'user.conf.d'],
- ''],
- ['elogind-sysusers', '8', ['elogind-sysusers.service'], ''],
- ['elogind-sysv-generator', '8', [], 'HAVE_SYSV_COMPAT'],
- ['elogind-timedated.service', '8', ['elogind-timedated'], 'ENABLE_TIMEDATED'],
- ['elogind-timesyncd.service', '8', ['elogind-timesyncd'], 'ENABLE_TIMESYNCD'],
- ['elogind-tmpfiles',
- '8',
- ['elogind-tmpfiles-clean.service',
- 'elogind-tmpfiles-clean.timer',
- 'elogind-tmpfiles-setup-dev.service',
- 'elogind-tmpfiles-setup.service'],
- ''],
- ['elogind-tty-ask-password-agent', '1', [], ''],
- ['elogind-udevd.service',
- '8',
- ['elogind-udevd',
- 'elogind-udevd-control.socket',
- 'elogind-udevd-kernel.socket'],
- ''],
- ['elogind-update-done.service', '8', ['elogind-update-done'], ''],
- ['elogind-update-utmp.service',
- '8',
- ['elogind-update-utmp', 'elogind-update-utmp-runlevel.service'],
- 'ENABLE_UTMP'],
- ['elogind-user-sessions.service', '8', ['elogind-user-sessions'], 'HAVE_PAM'],
- ['elogind-vconsole-setup.service',
- '8',
- ['elogind-vconsole-setup'],
- 'ENABLE_VCONSOLE'],
- ['elogind-veritysetup-generator', '8', [], 'HAVE_LIBCRYPTSETUP'],
- ['elogind-veritysetup@.service',
- '8',
- ['elogind-veritysetup'],
- 'HAVE_LIBCRYPTSETUP'],
- ['elogind-volatile-root.service', '8', ['elogind-volatile-root'], ''],
- ['elogind', '1', ['init'], ''],
- ['elogind.automount', '5', [], ''],
- ['elogind.device', '5', [], ''],
- ['elogind.dnssd', '5', [], 'ENABLE_RESOLVE'],
- ['elogind.environment-generator', '7', [], 'ENABLE_ENVIRONMENT_D'],
- ['elogind.exec', '5', [], ''],
- ['elogind.generator', '7', [], ''],
- ['elogind.journal-fields', '7', [], ''],
- ['elogind.kill', '5', [], ''],
- ['elogind.link', '5', [], ''],
- ['elogind.mount', '5', [], ''],
- ['elogind.netdev', '5', [], 'ENABLE_NETWORKD'],
- ['elogind.network', '5', [], 'ENABLE_NETWORKD'],
- ['elogind.nspawn', '5', [], ''],
- ['elogind.offline-updates', '7', [], ''],
- ['elogind.path', '5', [], ''],
- ['elogind.preset', '5', [], ''],
- ['elogind.resource-control', '5', [], ''],
- ['elogind.scope', '5', [], ''],
- ['elogind.service', '5', [], ''],
- ['elogind.slice', '5', [], ''],
- ['elogind.socket', '5', [], ''],
- ['elogind.special', '7', [], ''],
- ['elogind.swap', '5', [], ''],
- ['elogind.target', '5', [], ''],
- ['elogind.time', '7', [], ''],
- ['elogind.timer', '5', [], ''],
- ['elogind.unit', '5', [], ''],
- ['sysusers.d', '5', [], 'ENABLE_SYSUSERS'],
- ['telinit', '8', [], ''],
- ['timedatectl', '1', [], 'ENABLE_TIMEDATED'],
- ['timesyncd.conf', '5', ['timesyncd.conf.d'], 'ENABLE_TIMESYNCD'],
- ['tmpfiles.d', '5', [], ''],
- ['udev', '7', [], ''],
- ['udev.conf', '5', [], ''],
- ['udev_device_get_syspath',
- '3',
- ['udev_device_get_action',
- 'udev_device_get_devnode',
- 'udev_device_get_devnum',
- 'udev_device_get_devpath',
- 'udev_device_get_devtype',
- 'udev_device_get_driver',
- 'udev_device_get_is_initialized',
- 'udev_device_get_parent',
- 'udev_device_get_parent_with_subsystem_devtype',
- 'udev_device_get_subsystem',
- 'udev_device_get_sysname',
- 'udev_device_get_sysnum',
- 'udev_device_get_udev'],
- ''],
- ['udev_device_has_tag',
- '3',
- ['udev_device_get_devlinks_list_entry',
- 'udev_device_get_properties_list_entry',
- 'udev_device_get_property_value',
- 'udev_device_get_sysattr_list_entry',
- 'udev_device_get_sysattr_value',
- 'udev_device_get_tags_list_entry',
- 'udev_device_set_sysattr_value'],
- ''],
- ['udev_device_new_from_syspath',
- '3',
- ['udev_device_new_from_device_id',
- 'udev_device_new_from_devnum',
- 'udev_device_new_from_environment',
- 'udev_device_new_from_subsystem_sysname',
- 'udev_device_ref',
- 'udev_device_unref'],
- ''],
- ['udev_enumerate_add_match_subsystem',
- '3',
- ['udev_enumerate_add_match_is_initialized',
- 'udev_enumerate_add_match_parent',
- 'udev_enumerate_add_match_property',
- 'udev_enumerate_add_match_sysattr',
- 'udev_enumerate_add_match_sysname',
- 'udev_enumerate_add_match_tag',
- 'udev_enumerate_add_nomatch_subsystem',
- 'udev_enumerate_add_nomatch_sysattr'],
- ''],
- ['udev_enumerate_new',
- '3',
- ['udev_enumerate_ref', 'udev_enumerate_unref'],
- ''],
- ['udev_enumerate_scan_devices',
- '3',
- ['udev_enumerate_add_syspath',
- 'udev_enumerate_get_list_entry',
- 'udev_enumerate_get_udev',
- 'udev_enumerate_scan_subsystems'],
- ''],
- ['udev_list_entry',
- '3',
- ['udev_list_entry_get_by_name',
- 'udev_list_entry_get_name',
- 'udev_list_entry_get_next',
- 'udev_list_entry_get_value'],
- ''],
- ['udev_monitor_filter_update',
- '3',
- ['udev_monitor_filter_add_match_subsystem_devtype',
- 'udev_monitor_filter_add_match_tag',
- 'udev_monitor_filter_remove'],
- ''],
- ['udev_monitor_new_from_netlink',
- '3',
- ['udev_monitor_ref', 'udev_monitor_unref'],
- ''],
- ['udev_monitor_receive_device',
- '3',
- ['udev_monitor_enable_receiving',
- 'udev_monitor_get_fd',
- 'udev_monitor_get_udev',
- 'udev_monitor_set_receive_buffer_size'],
- ''],
- ['udev_new', '3', ['udev_ref', 'udev_unref'], ''],
- ['udevadm', '8', [], ''],
- ['vconsole.conf', '5', [], 'ENABLE_VCONSOLE']
]
# Really, do not edit.
diff --git a/man/sd-login.xml b/man/sd-login.xml
new file mode 100644
index 000000000..148dd19ce
--- /dev/null
+++ b/man/sd-login.xml
@@ -0,0 +1,277 @@
+<?xml version='1.0'?> <!--*-nxml-*-->
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
+
+<!--
+ SPDX-License-Identifier: LGPL-2.1+
+
+ This file is part of systemd.
+
+ Copyright 2010 Lennart Poettering
+
+ 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.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+-->
+
+<refentry id="sd-login" conditional='HAVE_PAM'
+ xmlns:xi="http://www.w3.org/2001/XInclude">
+
+ <refentryinfo>
+ <title>sd-login</title>
+ <productname>systemd</productname>
+
+ <authorgroup>
+ <author>
+ <contrib>Developer</contrib>
+ <firstname>Lennart</firstname>
+ <surname>Poettering</surname>
+ <email>lennart@poettering.net</email>
+ </author>
+ </authorgroup>
+ </refentryinfo>
+
+ <refmeta>
+ <refentrytitle>sd-login</refentrytitle>
+ <manvolnum>3</manvolnum>
+ </refmeta>
+
+ <refnamediv>
+ <refname>sd-login</refname>
+ <refpurpose>APIs for
+ tracking logins</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <funcsynopsis>
+ <funcsynopsisinfo>#include &lt;systemd/sd-login.h&gt;</funcsynopsisinfo>
+ </funcsynopsis>
+
+ <cmdsynopsis>
+ <command>pkg-config --cflags --libs libsystemd</command>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1>
+ <title>Description</title>
+
+ <para><filename>sd-login.h</filename> provides APIs to introspect
+ and monitor seat, login session and user status information on the
+ local system. </para>
+
+ <para>Note that these APIs only allow purely passive access and
+ monitoring of seats, sessions and users. To actively make changes
+ to the seat configuration, terminate login sessions, or switch
+ session on a seat you need to utilize the D-Bus API of
+ systemd-logind, instead.</para>
+
+ <para>These functions synchronously access data in
+ <filename>/proc</filename>, <filename>/sys/fs/cgroup</filename>
+ and <filename>/run</filename>. All of these are virtual file
+ systems, hence the runtime cost of the accesses is relatively
+ cheap.</para>
+
+ <para>It is possible (and often a very good choice) to mix calls
+ to the synchronous interface of <filename>sd-login.h</filename>
+ with the asynchronous D-Bus interface of systemd-logind. However,
+ if this is done you need to think a bit about possible races since
+ the stream of events from D-Bus and from
+ <filename>sd-login.h</filename> interfaces such as the login
+ monitor are asynchronous and not ordered against each
+ other.</para>
+
+ <para>If the functions return string arrays, these are generally
+ <constant>NULL</constant> terminated and need to be freed by the
+ caller with the libc
+ <citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
+ call after use, including the strings referenced therein.
+ Similarly, individual strings returned need to be freed, as
+ well.</para>
+
+ <para>As a special exception, instead of an empty string array
+ <constant>NULL</constant> may be returned, which should be treated
+ equivalent to an empty string array.</para>
+
+ <para>See
+ <citerefentry><refentrytitle>sd_pid_get_session</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>sd_uid_get_state</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>sd_session_is_active</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>sd_seat_get_active</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>sd_get_seats</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>sd_login_monitor_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>
+ for more information about the functions
+ implemented.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Definition of Terms</title>
+
+ <variablelist>
+ <varlistentry>
+ <term>seat</term>
+
+ <listitem><para>A seat consists of all hardware devices assigned to a specific
+ workplace. It consists of at least one graphics device, and usually also includes
+ keyboard, mouse. It can also include video cameras, sound cards and more. Seats
+ are identified by seat names, which are strings (&lt;= 255 characters), that start
+ with the four characters <literal>seat</literal> followed by at least one
+ character from the range [a-zA-Z0-9], <literal>_</literal> and
+ <literal>-</literal>. They are suitable for use as file names. Seat names may or
+ may not be stable and may be reused if a seat becomes available again.
+ </para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>session</term>
+
+ <listitem><para>A session is defined by the time a user is logged in until they
+ log out. A session is bound to one or no seats (the latter for 'virtual' ssh
+ logins). Multiple sessions can be attached to the same seat, but only one of them
+ can be active, the others are in the background. A session is identified by a
+ short string.</para>
+
+ <para>
+ <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
+ ensures that audit sessions are identical to systemd sessions, and uses the audit
+ session ID as session ID in systemd (if auditing is enabled). In general the
+ session identifier is a short string consisting only of [a-zA-Z0-9],
+ <literal>_</literal> and <literal>-</literal>, suitable for use as a file name.
+ Session IDs are unique on the local machine and are
+ never reused as long as the machine is online. A user (the way we know it on UNIX)
+ corresponds to the person using a computer. A single user can have multiple
+ sessions open at the same time. A user is identified by a numeric user id (UID) or
+ a user name (a string). A multi-session system allows multiple user sessions on
+ the same seat at the same time. A multi-seat system allows multiple independent
+ seats that can be individually and simultaneously used by different users.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>All hardware devices that are eligible to being assigned to a seat, are assigned
+ to one. A device can be assigned to only one seat at a time. If a device is not
+ assigned to any particular other seat it is implicitly assigned to the special default
+ seat called <literal>seat0</literal>.</para>
+
+ <para>Note that hardware like printers, hard disks or network cards is generally not
+ assigned to a specific seat. They are available to all seats equally. (Well, with one
+ exception: USB sticks can be assigned to a seat.)</para>
+
+ <para><literal>seat0</literal> always exists.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>udev Rules</title>
+
+ <para>Assignment of hardware devices to seats is managed inside the udev database, via
+ settings on the devices:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>Tag <literal>seat</literal></term>
+
+ <listitem><para>When set, a device is eligible to be assigned to a seat. This tag
+ is set for graphics devices, mice, keyboards, video cards, sound cards and
+ more. Note that some devices like sound cards consist of multiple subdevices
+ (i.e. a PCM for input and another one for output). This tag will be set only for
+ the originating device, not for the individual subdevices. A UI for configuring
+ assignment of devices to seats should enumerate and subscribe to all devices with
+ this tag set and show them in the UI. Note that USB hubs can be assigned to a seat
+ as well, in which case all (current and future) devices plugged into it will also
+ be assigned to the same seat (unless they are explicitly assigned to another
+ seat).
+ </para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Tag <literal>master-of-seat</literal></term>
+
+ <listitem><para>When set, this device is enough for a seat to be considered
+ existent. This tag is usually set for the framebuffer device of graphics cards. A
+ seat hence consists of an arbitrary number of devices marked with the
+ <literal>seat</literal> tag, but (at least) one of these devices needs to be
+ tagged with <literal>master-of-seat</literal> before the seat is actually
+ considered to be around.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Property <varname>ID_SEAT</varname></term>
+
+ <listitem><para>This property specifies the name of the seat a specific device is
+ assigned to. If not set the device is assigned to <literal>seat0</literal>. Also,
+ to speed up enumeration of hardware belonging to a specific seat, the seat is also
+ set as tag on the device. I.e. if the property
+ <varname>ID_SEAT=seat-waldo</varname> is set for a device, the tag
+ <literal>seat-waldo</literal> will be set as well. Note that if a device is
+ assigned to <literal>seat0</literal>, it will usually not carry such a tag and you
+ need to enumerate all devices and check the <varname>ID_SEAT</varname> property
+ manually. Again, if a device is assigned to seat0 this is visible on the device in
+ two ways: with a property <varname>ID_SEAT=seat0</varname> and with no property
+ <varname>ID_SEAT</varname> set for it at all.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Property <varname>ID_AUTOSEAT</varname></term>
+
+ <listitem><para>When set to <literal>1</literal>, this device automatically
+ generates a new and independent seat, which is named after the path of the
+ device. This is set for specialized USB hubs like the Plugable devices, which when
+ plugged in should create a hotplug seat without further configuration.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Property <varname>ID_FOR_SEAT</varname></term>
+
+ <listitem><para>When creating additional (manual) seats starting from a graphics
+ device this is a good choice to name the seat after. It is created from the path
+ of the device. This is useful in UIs for configuring seats: as soon as you create
+ a new seat from a graphics device, read this property and prefix it with
+ <literal>seat-</literal> and use it as name for the seat.</para></listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>A seat exists only and exclusively because a properly tagged device with the
+ right <varname>ID_SEAT</varname> property exists. Besides udev rules there is no
+ persistent data about seats stored on disk.</para>
+
+ <para>Note that
+ <citerefentry><refentrytitle>systemd-logind</refentrytitle><manvolnum>8</manvolnum></citerefentry>
+ manages ACLs on a number of device classes, to allow user code to access the device
+ nodes attached to a seat as long as the user has an active session on it. This is
+ mostly transparent to applications. As mentioned above, for certain user software it
+ might be a good idea to watch whether they can access device nodes instead of thinking
+ about seats.</para>
+ </refsect1>
+
+ <xi:include href="libsystemd-pkgconfig.xml" />
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>sd_pid_get_session</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>sd_uid_get_state</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>sd_session_is_active</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>sd_seat_get_active</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>sd_get_seats</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>sd_login_monitor_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>sd-daemon</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
+ </para>
+
+ <para>
+ <ulink url="https://www.freedesktop.org/wiki/Software/systemd/multiseat">Multi-Seat on Linux</ulink>
+ for an introduction to multi-seat support on Linux and the background for this set of APIs.
+ </para>
+ </refsect1>
+
+</refentry>
diff --git a/man/sd_machine_get_class.xml b/man/sd_machine_get_class.xml
index 7f60088d1..a99097476 100644
--- a/man/sd_machine_get_class.xml
+++ b/man/sd_machine_get_class.xml
@@ -146,11 +146,11 @@
<para>
<!-- 0 /// elogind is in section 8
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemd-machined.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
--><!-- else -->
<citerefentry><refentrytitle>elogind</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<!-- // 0 -->
<citerefentry><refentrytitle>sd-login</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
- <citerefentry><refentrytitle>elogind-machined.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_pid_get_machine_name</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
diff --git a/man/sd_pid_get_session.xml b/man/sd_pid_get_owner_uid.xml
index a4be941de..fcedcfcd1 100644
--- a/man/sd_pid_get_session.xml
+++ b/man/sd_pid_get_owner_uid.xml
@@ -3,6 +3,8 @@
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
+ SPDX-License-Identifier: LGPL-2.1+
+
This file is part of systemd.
Copyright 2010 Lennart Poettering
@@ -21,10 +23,10 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
-<refentry id="sd_pid_get_session" conditional='HAVE_PAM'>
+<refentry id="sd_pid_get_owner_uid" conditional='HAVE_PAM'>
<refentryinfo>
- <title>sd_pid_get_session</title>
+ <title>sd_pid_get_owner_uid</title>
<productname>systemd</productname>
<authorgroup>
@@ -38,30 +40,30 @@
</refentryinfo>
<refmeta>
- <refentrytitle>sd_pid_get_session</refentrytitle>
+ <refentrytitle>sd_pid_get_owner_uid</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refnamediv>
+ <refname>sd_pid_get_owner_uid</refname>
<refname>sd_pid_get_session</refname>
- <refname>sd_pid_get_unit</refname>
<refname>sd_pid_get_user_unit</refname>
- <refname>sd_pid_get_owner_uid</refname>
+ <refname>sd_pid_get_unit</refname>
<refname>sd_pid_get_machine_name</refname>
<refname>sd_pid_get_slice</refname>
<refname>sd_pid_get_user_slice</refname>
<refname>sd_pid_get_cgroup</refname>
+ <refname>sd_peer_get_owner_uid</refname>
<refname>sd_peer_get_session</refname>
- <refname>sd_peer_get_unit</refname>
<refname>sd_peer_get_user_unit</refname>
- <refname>sd_peer_get_owner_uid</refname>
+ <refname>sd_peer_get_unit</refname>
<refname>sd_peer_get_machine_name</refname>
<refname>sd_peer_get_slice</refname>
<refname>sd_peer_get_user_slice</refname>
<refname>sd_peer_get_cgroup</refname>
- <refpurpose>Determine session, unit, owner of a session,
- container/VM or slice of a specific PID or socket
- peer</refpurpose>
+ <refpurpose>Determine the owner uid of the user unit or session,
+ or the session, user unit, system unit, container/VM or slice that
+ a specific PID or socket peer belongs to.</refpurpose>
</refnamediv>
<refsynopsisdiv>
@@ -69,15 +71,15 @@
<funcsynopsisinfo>#include &lt;systemd/sd-login.h&gt;</funcsynopsisinfo>
<funcprototype>
- <funcdef>int <function>sd_pid_get_session</function></funcdef>
+ <funcdef>int <function>sd_pid_get_owner_uid</function></funcdef>
<paramdef>pid_t <parameter>pid</parameter></paramdef>
- <paramdef>char **<parameter>session</parameter></paramdef>
+ <paramdef>uid_t *<parameter>uid</parameter></paramdef>
</funcprototype>
<funcprototype>
- <funcdef>int <function>sd_pid_get_unit</function></funcdef>
+ <funcdef>int <function>sd_pid_get_session</function></funcdef>
<paramdef>pid_t <parameter>pid</parameter></paramdef>
- <paramdef>char **<parameter>unit</parameter></paramdef>
+ <paramdef>char **<parameter>session</parameter></paramdef>
</funcprototype>
<funcprototype>
@@ -87,9 +89,9 @@
</funcprototype>
<funcprototype>
- <funcdef>int <function>sd_pid_get_owner_uid</function></funcdef>
+ <funcdef>int <function>sd_pid_get_unit</function></funcdef>
<paramdef>pid_t <parameter>pid</parameter></paramdef>
- <paramdef>uid_t *<parameter>uid</parameter></paramdef>
+ <paramdef>char **<parameter>unit</parameter></paramdef>
</funcprototype>
<funcprototype>
@@ -117,15 +119,15 @@
</funcprototype>
<funcprototype>
- <funcdef>int <function>sd_peer_get_session</function></funcdef>
+ <funcdef>int <function>sd_peer_get_owner_uid</function></funcdef>
<paramdef>int <parameter>fd</parameter></paramdef>
- <paramdef>char **<parameter>session</parameter></paramdef>
+ <paramdef>uid_t *<parameter>uid</parameter></paramdef>
</funcprototype>
<funcprototype>
- <funcdef>int <function>sd_peer_get_unit</function></funcdef>
+ <funcdef>int <function>sd_peer_get_session</function></funcdef>
<paramdef>int <parameter>fd</parameter></paramdef>
- <paramdef>char **<parameter>unit</parameter></paramdef>
+ <paramdef>char **<parameter>session</parameter></paramdef>
</funcprototype>
<funcprototype>
@@ -135,9 +137,9 @@
</funcprototype>
<funcprototype>
- <funcdef>int <function>sd_peer_get_owner_uid</function></funcdef>
+ <funcdef>int <function>sd_peer_get_unit</function></funcdef>
<paramdef>int <parameter>fd</parameter></paramdef>
- <paramdef>uid_t *<parameter>uid</parameter></paramdef>
+ <paramdef>char **<parameter>unit</parameter></paramdef>
</funcprototype>
<funcprototype>
@@ -169,16 +171,34 @@
<refsect1>
<title>Description</title>
+ <para><function>sd_pid_get_owner_uid()</function> may be used to
+ determine the Unix UID (user identifier) which owns the login
+ session or systemd user unit of a process identified by the
+ specified PID. For processes which are not part of a login session
+ and not managed by a user manager, this function will fail with
+ <constant>-ENODATA</constant>.</para>
+
<para><function>sd_pid_get_session()</function> may be used to
determine the login session identifier of a process identified by
the specified process identifier. The session identifier is a
- short string, suitable for usage in file system paths. Note that
- not all processes are part of a login session (e.g. system service
- processes, user processes that are shared between multiple
- sessions of the same user, or kernel threads). For processes not
- being part of a login session, this function will fail with
- <constant>-ENODATA</constant>. The returned string needs to be freed with the libc
- <citerefentry
+ short string, suitable for usage in file system paths. Please
+ note the login session may be limited to a stub process or two.
+ User processes may instead be started from their systemd user
+ manager, e.g. GUI applications started using DBus activation, as
+ well as service processes which are shared between multiple logins
+ of the same user. For processes which are not part of a login
+ session, this function will fail with <constant>-ENODATA</constant>.
+ The returned string needs to be freed with the libc <citerefentry
+ project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
+ call after use.</para>
+
+ <para><function>sd_pid_get_user_unit()</function> may be used to
+ determine the systemd user unit (i.e. user service or scope unit)
+ identifier of a process identified by the specified PID. The
+ unit name is a short string, suitable for usage in file system
+ paths. For processes which are not managed by a user manager, this
+ function will fail with <constant>-ENODATA</constant>. The
+ returned string needs to be freed with the libc <citerefentry
project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para>
@@ -186,37 +206,21 @@
determine the systemd system unit (i.e. system service or scope
unit) identifier of a process identified by the specified PID. The
unit name is a short string, suitable for usage in file system
- paths. Note that not all processes are part of a system
- unit/service (e.g. user processes, or kernel threads). For
- processes not being part of a systemd system unit, this function
- will fail with <constant>-ENODATA</constant>. (More specifically, this call will not
- work for kernel threads.) The returned string needs to be freed
- with the libc <citerefentry
+ paths. Note that not all processes are part of a system
+ unit/service. For processes not being part of a systemd system
+ unit, this function will fail with <constant>-ENODATA</constant>.
+ (More specifically, this call will not work for kernel threads.)
+ The returned string needs to be freed with the libc <citerefentry
project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para>
- <para><function>sd_pid_get_user_unit()</function> may be used to
- determine the systemd user unit (i.e. user service or scope unit)
- identifier of a process identified by the specified PID. This is
- similar to <function>sd_pid_get_unit()</function>, but applies to
- user units instead of system units.</para>
-
- <para><function>sd_pid_get_owner_uid()</function> may be used to
- determine the Unix UID (user identifier) of the owner of the
- session of a process identified the specified PID. Note that this
- function will succeed for user processes which are shared between
- multiple login sessions of the same user, whereas
- <function>sd_pid_get_session()</function> will fail. For processes
- not being part of a login session and not being a shared process
- of a user, this function will fail with <constant>-ENODATA</constant>.</para>
-
<para><function>sd_pid_get_machine_name()</function> may be used
to determine the name of the VM or container is a member of. The
machine name is a short string, suitable for usage in file system
paths. The returned string needs to be freed with the libc
<citerefentry
project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
- call after use. For processes not part of a VM or containers, this
+ call after use. For processes not part of a VM or container, this
function fails with <constant>-ENODATA</constant>.</para>
<para><function>sd_pid_get_slice()</function> may be used to
@@ -246,10 +250,10 @@
functions is passed as 0, the operation is executed for the
calling process.</para>
- <para>The <function>sd_peer_get_session()</function>,
- <function>sd_peer_get_unit()</function>,
+ <para>The <function>sd_peer_get_owner_uid()</function>,
+ <function>sd_peer_get_session()</function>,
<function>sd_peer_get_user_unit()</function>,
- <function>sd_peer_get_owner_uid()</function>,
+ <function>sd_peer_get_unit()</function>,
<function>sd_peer_get_machine_name()</function>,
<function>sd_peer_get_slice()</function>,
<function>sd_peer_get_user_slice()</function> and
@@ -332,7 +336,7 @@
<function>sd_peer_get_slice()</function> and
<function>sd_peer_get_user_slice()</function> interfaces are
available as a shared library, which can be compiled and linked to
- with the <constant>libelogind</constant> <citerefentry
+ with the <constant>libsystemd</constant> <citerefentry
project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>