- { "WorkingDirectory", config_parse_path, &(context).working_directory, section }, \
- { "RootDirectory", config_parse_path, &(context).root_directory, section }, \
- { "User", config_parse_string_printf, &(context).user, section }, \
- { "Group", config_parse_string_printf, &(context).group, section }, \
- { "SupplementaryGroups", config_parse_strv, &(context).supplementary_groups, section }, \
- { "Nice", config_parse_nice, &(context), section }, \
- { "OOMScoreAdjust", config_parse_oom_score_adjust,&(context), section }, \
- { "IOSchedulingClass", config_parse_io_class, &(context), section }, \
- { "IOSchedulingPriority", config_parse_io_priority, &(context), section }, \
- { "CPUSchedulingPolicy", config_parse_cpu_sched_policy,&(context), section }, \
- { "CPUSchedulingPriority", config_parse_cpu_sched_prio, &(context), section }, \
- { "CPUSchedulingResetOnFork", config_parse_bool, &(context).cpu_sched_reset_on_fork, section }, \
- { "CPUAffinity", config_parse_cpu_affinity, &(context), section }, \
- { "UMask", config_parse_mode, &(context).umask, section }, \
- { "Environment", config_parse_strv, &(context).environment, section }, \
- { "EnvironmentFile", config_parse_env_file, &(context).environment, section }, \
- { "StandardInput", config_parse_input, &(context).std_input, section }, \
- { "StandardOutput", config_parse_output, &(context).std_output, section }, \
- { "StandardError", config_parse_output, &(context).std_error, section }, \
- { "TTYPath", config_parse_path, &(context).tty_path, section }, \
- { "SyslogIdentifier", config_parse_string_printf, &(context).syslog_identifier, section }, \
- { "SyslogFacility", config_parse_facility, &(context).syslog_priority, section }, \
- { "SyslogLevel", config_parse_level, &(context).syslog_priority, section }, \
- { "SyslogLevelPrefix", config_parse_bool, &(context).syslog_level_prefix, section }, \
- { "Capabilities", config_parse_capabilities, &(context), section }, \
- { "SecureBits", config_parse_secure_bits, &(context), section }, \
- { "CapabilityBoundingSetDrop", config_parse_bounding_set, &(context), section }, \
- { "TimerSlackNSec", config_parse_timer_slack_nsec,&(context), section }, \
- { "LimitCPU", config_parse_limit, &(context).rlimit[RLIMIT_CPU], section }, \
- { "LimitFSIZE", config_parse_limit, &(context).rlimit[RLIMIT_FSIZE], section }, \
- { "LimitDATA", config_parse_limit, &(context).rlimit[RLIMIT_DATA], section }, \
- { "LimitSTACK", config_parse_limit, &(context).rlimit[RLIMIT_STACK], section }, \
- { "LimitCORE", config_parse_limit, &(context).rlimit[RLIMIT_CORE], section }, \
- { "LimitRSS", config_parse_limit, &(context).rlimit[RLIMIT_RSS], section }, \
- { "LimitNOFILE", config_parse_limit, &(context).rlimit[RLIMIT_NOFILE], section }, \
- { "LimitAS", config_parse_limit, &(context).rlimit[RLIMIT_AS], section }, \
- { "LimitNPROC", config_parse_limit, &(context).rlimit[RLIMIT_NPROC], section }, \
- { "LimitMEMLOCK", config_parse_limit, &(context).rlimit[RLIMIT_MEMLOCK], section }, \
- { "LimitLOCKS", config_parse_limit, &(context).rlimit[RLIMIT_LOCKS], section }, \
- { "LimitSIGPENDING", config_parse_limit, &(context).rlimit[RLIMIT_SIGPENDING], section }, \
- { "LimitMSGQUEUE", config_parse_limit, &(context).rlimit[RLIMIT_MSGQUEUE], section }, \
- { "LimitNICE", config_parse_limit, &(context).rlimit[RLIMIT_NICE], section }, \
- { "LimitRTPRIO", config_parse_limit, &(context).rlimit[RLIMIT_RTPRIO], section }, \
- { "LimitRTTIME", config_parse_limit, &(context).rlimit[RLIMIT_RTTIME], section }, \
- { "ControlGroup", config_parse_cgroup, u, section }, \
- { "ReadWriteDirectories", config_parse_path_strv, &(context).read_write_dirs, section }, \
- { "ReadOnlyDirectories", config_parse_path_strv, &(context).read_only_dirs, section }, \
- { "InaccessibleDirectories",config_parse_path_strv, &(context).inaccessible_dirs, section }, \
- { "PrivateTmp", config_parse_bool, &(context).private_tmp, section }, \
- { "MountFlags", config_parse_mount_flags, &(context), section }, \
- { "TCPWrapName", config_parse_string_printf, &(context).tcpwrap_name, section }, \
- { "PAMName", config_parse_string_printf, &(context).pam_name, section }, \
- { "KillMode", config_parse_kill_mode, &(context).kill_mode, section }, \
- { "KillSignal", config_parse_kill_signal, &(context).kill_signal, section }, \
- { "UtmpIdentifier", config_parse_string_printf, &(context).utmp_id, section }
+ { "WorkingDirectory", config_parse_path_printf, 0, &(context).working_directory, section }, \
+ { "RootDirectory", config_parse_path_printf, 0, &(context).root_directory, section }, \
+ { "User", config_parse_string_printf, 0, &(context).user, section }, \
+ { "Group", config_parse_string_printf, 0, &(context).group, section }, \
+ { "SupplementaryGroups", config_parse_strv, 0, &(context).supplementary_groups, section }, \
+ { "Nice", config_parse_nice, 0, &(context), section }, \
+ { "OOMScoreAdjust", config_parse_oom_score_adjust,0, &(context), section }, \
+ { "IOSchedulingClass", config_parse_io_class, 0, &(context), section }, \
+ { "IOSchedulingPriority", config_parse_io_priority, 0, &(context), section }, \
+ { "CPUSchedulingPolicy", config_parse_cpu_sched_policy,0, &(context), section }, \
+ { "CPUSchedulingPriority", config_parse_cpu_sched_prio, 0, &(context), section }, \
+ { "CPUSchedulingResetOnFork", config_parse_bool, 0, &(context).cpu_sched_reset_on_fork, section }, \
+ { "CPUAffinity", config_parse_cpu_affinity, 0, &(context), section }, \
+ { "UMask", config_parse_mode, 0, &(context).umask, section }, \
+ { "Environment", config_parse_strv_printf, 0, &(context).environment, section }, \
+ { "EnvironmentFile", config_parse_env_file, 0, &(context).environment_files, section }, \
+ { "StandardInput", config_parse_input, 0, &(context).std_input, section }, \
+ { "StandardOutput", config_parse_output, 0, &(context).std_output, section }, \
+ { "StandardError", config_parse_output, 0, &(context).std_error, section }, \
+ { "TTYPath", config_parse_path_printf, 0, &(context).tty_path, section }, \
+ { "TTYReset", config_parse_bool, 0, &(context).tty_reset, section }, \
+ { "TTYVHangup", config_parse_bool, 0, &(context).tty_vhangup, section }, \
+ { "TTYVTDisallocate", config_parse_bool, 0, &(context).tty_vt_disallocate, section }, \
+ { "SyslogIdentifier", config_parse_string_printf, 0, &(context).syslog_identifier, section }, \
+ { "SyslogFacility", config_parse_facility, 0, &(context).syslog_priority, section }, \
+ { "SyslogLevel", config_parse_level, 0, &(context).syslog_priority, section }, \
+ { "SyslogLevelPrefix", config_parse_bool, 0, &(context).syslog_level_prefix, section }, \
+ { "Capabilities", config_parse_capabilities, 0, &(context), section }, \
+ { "SecureBits", config_parse_secure_bits, 0, &(context), section }, \
+ { "CapabilityBoundingSet", config_parse_bounding_set, 0, &(context), section }, \
+ { "TimerSlackNSec", config_parse_timer_slack_nsec,0, &(context), section }, \
+ { "LimitCPU", config_parse_limit, 0, &(context).rlimit[RLIMIT_CPU], section }, \
+ { "LimitFSIZE", config_parse_limit, 0, &(context).rlimit[RLIMIT_FSIZE], section }, \
+ { "LimitDATA", config_parse_limit, 0, &(context).rlimit[RLIMIT_DATA], section }, \
+ { "LimitSTACK", config_parse_limit, 0, &(context).rlimit[RLIMIT_STACK], section }, \
+ { "LimitCORE", config_parse_limit, 0, &(context).rlimit[RLIMIT_CORE], section }, \
+ { "LimitRSS", config_parse_limit, 0, &(context).rlimit[RLIMIT_RSS], section }, \
+ { "LimitNOFILE", config_parse_limit, 0, &(context).rlimit[RLIMIT_NOFILE], section }, \
+ { "LimitAS", config_parse_limit, 0, &(context).rlimit[RLIMIT_AS], section }, \
+ { "LimitNPROC", config_parse_limit, 0, &(context).rlimit[RLIMIT_NPROC], section }, \
+ { "LimitMEMLOCK", config_parse_limit, 0, &(context).rlimit[RLIMIT_MEMLOCK], section }, \
+ { "LimitLOCKS", config_parse_limit, 0, &(context).rlimit[RLIMIT_LOCKS], section }, \
+ { "LimitSIGPENDING", config_parse_limit, 0, &(context).rlimit[RLIMIT_SIGPENDING], section }, \
+ { "LimitMSGQUEUE", config_parse_limit, 0, &(context).rlimit[RLIMIT_MSGQUEUE], section }, \
+ { "LimitNICE", config_parse_limit, 0, &(context).rlimit[RLIMIT_NICE], section }, \
+ { "LimitRTPRIO", config_parse_limit, 0, &(context).rlimit[RLIMIT_RTPRIO], section }, \
+ { "LimitRTTIME", config_parse_limit, 0, &(context).rlimit[RLIMIT_RTTIME], section }, \
+ { "ControlGroup", config_parse_cgroup, 0, u, section }, \
+ { "ReadWriteDirectories", config_parse_path_strv, 0, &(context).read_write_dirs, section }, \
+ { "ReadOnlyDirectories", config_parse_path_strv, 0, &(context).read_only_dirs, section }, \
+ { "InaccessibleDirectories",config_parse_path_strv, 0, &(context).inaccessible_dirs, section }, \
+ { "PrivateTmp", config_parse_bool, 0, &(context).private_tmp, section }, \
+ { "MountFlags", config_parse_mount_flags, 0, &(context), section }, \
+ { "TCPWrapName", config_parse_string_printf, 0, &(context).tcpwrap_name, section }, \
+ { "PAMName", config_parse_string_printf, 0, &(context).pam_name, section }, \
+ { "KillMode", config_parse_kill_mode, 0, &(context).kill_mode, section }, \
+ { "KillSignal", config_parse_kill_signal, 0, &(context).kill_signal, section }, \
+ { "SendSIGKILL", config_parse_bool, 0, &(context).send_sigkill, section }, \
+ { "UtmpIdentifier", config_parse_string_printf, 0, &(context).utmp_id, section }, \
+ { "ControlGroupModify", config_parse_bool, 0, &(context).control_group_modify, section }