summaryrefslogtreecommitdiff
path: root/src/service.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2010-07-08 04:09:17 +0200
committerLennart Poettering <lennart@poettering.net>2010-07-08 04:09:17 +0200
commit1e3ad081efda42dd1cc737ce7e98be8889c78340 (patch)
tree95e2dab095999baa69ad62d413e72b318daf8760 /src/service.c
parent398ef8ba0266cca453d90a90b3a2aa1caa44189f (diff)
execute: if the main process of a service already owns the TTY, don't wait for acquiring it again in the reload/stop step
Diffstat (limited to 'src/service.c')
-rw-r--r--src/service.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/service.c b/src/service.c
index 75439be376..2ca0c17ec2 100644
--- a/src/service.c
+++ b/src/service.c
@@ -1323,6 +1323,7 @@ static int service_spawn(
bool pass_fds,
bool apply_permissions,
bool apply_chroot,
+ bool apply_tty_stdin,
bool set_notify_socket,
pid_t *_pid) {
@@ -1395,6 +1396,7 @@ static int service_spawn(
final_env,
apply_permissions,
apply_chroot,
+ apply_tty_stdin,
s->meta.manager->confirm_spawn,
s->meta.cgroup_bondings,
&pid);
@@ -1505,6 +1507,7 @@ static void service_enter_stop_post(Service *s, bool success) {
false,
!s->permissions_start_only,
!s->root_directory_start_only,
+ true,
false,
&s->control_pid)) < 0)
goto fail;
@@ -1605,6 +1608,7 @@ static void service_enter_stop(Service *s, bool success) {
!s->permissions_start_only,
!s->root_directory_start_only,
false,
+ false,
&s->control_pid)) < 0)
goto fail;
@@ -1653,6 +1657,7 @@ static void service_enter_start_post(Service *s) {
!s->permissions_start_only,
!s->root_directory_start_only,
false,
+ false,
&s->control_pid)) < 0)
goto fail;
@@ -1687,6 +1692,7 @@ static void service_enter_start(Service *s) {
true,
true,
true,
+ true,
s->notify_access != NOTIFY_NONE,
&pid)) < 0)
goto fail;
@@ -1747,6 +1753,7 @@ static void service_enter_start_pre(Service *s) {
false,
!s->permissions_start_only,
!s->root_directory_start_only,
+ true,
false,
&s->control_pid)) < 0)
goto fail;
@@ -1800,6 +1807,7 @@ static void service_enter_reload(Service *s) {
!s->permissions_start_only,
!s->root_directory_start_only,
false,
+ false,
&s->control_pid)) < 0)
goto fail;
@@ -1835,6 +1843,7 @@ static void service_run_next(Service *s, bool success) {
!s->permissions_start_only,
!s->root_directory_start_only,
false,
+ false,
&s->control_pid)) < 0)
goto fail;