Skip to main content
edited tags
Link
Braiam
  • 37k
  • 29
  • 114
  • 176
Tweeted twitter.com/#!/StackUnix/status/453670009907466240
added 924 characters in body; edited tags
Source Link
lviggiani
  • 3.7k
  • 9
  • 41
  • 67

I'm trying to get a graceful shutdown/reboot in ArchLinux with GNOME Shell. Now, when I ask for shut-down, it immediately shuts down without giving open programs time to gracefully close / save open files. As a result, whenever I restart Chrome (for example) it tells me that the session was not closed correctly etc. By reading on the web I learnt that systemd while shutting down processes, it first send a SIGTERM followed by SIGKILL if the process does not close withing a given timeout. However I notice that on my system SIGKILL is sent immediately after SIGTERM and I guess this is the cause of a non graceful programs termination.

I've found some documentation which (if I read it correctly) states that timeout before sending SIGKILL can be set by TimeoutStopSec= option. Also sending SIGKILL could also be disabled by SendSIGKILL= option. But I cannot find where to configure those options... is there a systemd shutdown / reboot configurations file where I can set those options?

EDIT:

I did some test and I discovered two interesting things:

  1. If I manually close chrome like this killall -SIGTERM chrome, it will not complain that is has not been closed correctly next time I start it again. If I close it like this instead killall -SIGKILL chrome, it will complain. This tells me that chrome is handling SIGTERM correctly.
  2. Looking at the output of my shutdown procedure, systemd prints Sending SIGTERM... immediately followed by Sending SIGKILL...

According to comment below, systemd is handling its processes only. So in my case GDM. This tells me that the issue could be:

  1. either GDM not closing it's child processes (e.g. Chrome) correctly (i.e. by sending SIGTERM to them)
  2. or systemd is sending GDM a SIGKILL message to early not giving it the time to correctly close its children.

Is there a way to check/configure how actually GDM closes its children?

I'm trying to get a graceful shutdown/reboot in ArchLinux with GNOME Shell. Now, when I ask for shut-down, it immediately shuts down without giving open programs time to gracefully close / save open files. As a result, whenever I restart Chrome (for example) it tells me that the session was not closed correctly etc. By reading on the web I learnt that systemd while shutting down processes, it first send a SIGTERM followed by SIGKILL if the process does not close withing a given timeout. However I notice that on my system SIGKILL is sent immediately after SIGTERM and I guess this is the cause of a non graceful programs termination.

I've found some documentation which (if I read it correctly) states that timeout before sending SIGKILL can be set by TimeoutStopSec= option. Also sending SIGKILL could also be disabled by SendSIGKILL= option. But I cannot find where to configure those options... is there a systemd shutdown / reboot configurations file where I can set those options?

I'm trying to get a graceful shutdown/reboot in ArchLinux with GNOME Shell. Now, when I ask for shut-down, it immediately shuts down without giving open programs time to gracefully close / save open files. As a result, whenever I restart Chrome (for example) it tells me that the session was not closed correctly etc. By reading on the web I learnt that systemd while shutting down processes, it first send a SIGTERM followed by SIGKILL if the process does not close withing a given timeout. However I notice that on my system SIGKILL is sent immediately after SIGTERM and I guess this is the cause of a non graceful programs termination.

I've found some documentation which (if I read it correctly) states that timeout before sending SIGKILL can be set by TimeoutStopSec= option. Also sending SIGKILL could also be disabled by SendSIGKILL= option. But I cannot find where to configure those options... is there a systemd shutdown / reboot configurations file where I can set those options?

EDIT:

I did some test and I discovered two interesting things:

  1. If I manually close chrome like this killall -SIGTERM chrome, it will not complain that is has not been closed correctly next time I start it again. If I close it like this instead killall -SIGKILL chrome, it will complain. This tells me that chrome is handling SIGTERM correctly.
  2. Looking at the output of my shutdown procedure, systemd prints Sending SIGTERM... immediately followed by Sending SIGKILL...

According to comment below, systemd is handling its processes only. So in my case GDM. This tells me that the issue could be:

  1. either GDM not closing it's child processes (e.g. Chrome) correctly (i.e. by sending SIGTERM to them)
  2. or systemd is sending GDM a SIGKILL message to early not giving it the time to correctly close its children.

Is there a way to check/configure how actually GDM closes its children?

Source Link
lviggiani
  • 3.7k
  • 9
  • 41
  • 67

Graceful shutdown in ArchLinux

I'm trying to get a graceful shutdown/reboot in ArchLinux with GNOME Shell. Now, when I ask for shut-down, it immediately shuts down without giving open programs time to gracefully close / save open files. As a result, whenever I restart Chrome (for example) it tells me that the session was not closed correctly etc. By reading on the web I learnt that systemd while shutting down processes, it first send a SIGTERM followed by SIGKILL if the process does not close withing a given timeout. However I notice that on my system SIGKILL is sent immediately after SIGTERM and I guess this is the cause of a non graceful programs termination.

I've found some documentation which (if I read it correctly) states that timeout before sending SIGKILL can be set by TimeoutStopSec= option. Also sending SIGKILL could also be disabled by SendSIGKILL= option. But I cannot find where to configure those options... is there a systemd shutdown / reboot configurations file where I can set those options?