09c8fb5414
When GNOME shell runs on a less memory system (for example 3 GB RAM), it is usually killed by the kernel OOM-killer easily. Because, it has a higher OOM score. However, GNOME desktop environment cannot do anything when the GNOME shell is killed. This commit adjusts and lowers down gnome-shell process' OOM score to avoid being killed by the kernel OOM-killer too early. In other words, sacrifices other processes first. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2582>
43 lines
1.4 KiB
SYSTEMD
43 lines
1.4 KiB
SYSTEMD
[Unit]
|
|
Description=GNOME Shell on X11
|
|
# On X11, try to show the GNOME Session Failed screen
|
|
OnFailure=org.gnome.Shell-disable-extensions.service gnome-session-failed.target
|
|
OnFailureJobMode=replace
|
|
CollectMode=inactive-or-failed
|
|
RefuseManualStart=on
|
|
RefuseManualStop=on
|
|
|
|
After=gnome-session-manager.target
|
|
|
|
Requisite=gnome-session-initialized.target
|
|
PartOf=gnome-session-initialized.target
|
|
Before=gnome-session-initialized.target
|
|
|
|
# Limit startup frequency more than the default
|
|
StartLimitIntervalSec=15s
|
|
StartLimitBurst=3
|
|
|
|
[Service]
|
|
Slice=session.slice
|
|
Type=notify
|
|
# NOTE: This can be replaced with ConditionEnvironment=XDG_SESSION_TYPE=%I in
|
|
# the [Unit] section with systemd >= 246. Also, the current solution is
|
|
# kind of painful as systemd had a bug where it retries the condition.
|
|
# Only start if the template instance matches the session type.
|
|
ExecCondition=/bin/sh -c 'test "$XDG_SESSION_TYPE" = "%I" || exit 2'
|
|
ExecStart=@bindir@/gnome-shell
|
|
# Exit code 1 means we are probably *not* dealing with an extension failure
|
|
SuccessExitStatus=1
|
|
|
|
# On X11 we do not need to unset any variables
|
|
|
|
# On X11 we want to restart on-success (Alt+F2 + r) and on-failure.
|
|
Restart=always
|
|
# Do not wait before restarting the shell
|
|
RestartSec=0ms
|
|
# Kill any stubborn child processes after this long
|
|
TimeoutStopSec=5
|
|
|
|
# Lower down gnome-shell's OOM score to avoid being killed by OOM-killer too early
|
|
OOMScoreAdjust=-1000
|