1

I faced the problem when terminal do not start. I have look at related issue when locale do not supported. I have tried to update it, regenerate it - nothing help. Finally I have found next error message in /var/log/syslog

Dec 31 00:45:43 kes-X751SA console-kit-daemon[2215]: (process:3545): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
Dec 31 00:45:48 kes-X751SA org.gnome.Terminal[2464]: Locale not supported.
Dec 31 00:45:57 kes-X751SA console-kit-daemon[2215]: (process:3562): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed

Here is not clear. If I have wrong locale which locale is not supported?? How to check which locales are supported? How to apply supported locale?

2 Answers2

4

Straight from the "Troubleshooting" section of the nosh Guide, under the "GNOME Terminal refuses to start" heading:

  • The GNOME Terminal server requires that a UTF-8 locale be configured in its LANG environment variable, and refuses to start if it is not. It cannot be just the C locale.

Note that the GNOME Terminal server is the org.gnome.Terminal service started, indirectly via the DBUS Broker, under your per-user service manager. It runs a program named gnome-terminal-server which is actually what provides the terminal emulator. It is not the gnome-terminal client command that you are directly running, which is just a control program for that server.

  • If you are letting the per-user/session DBUS broker spawn the server processes directly, which is the old but not recommended way of doing things, you need to ensure that your per-user/session DBUS broker is itself running in a UTF-8 locale.

    Since there are so many varied ways in which the DBUS broker can be invoked, exactly how you do this is beyond the scope of this answer.

  • If your DBUS broker is simply passing things along to a proper per-user service manager, which is the new and now recommended way of doing things, you need to ensure that the service definition for your per-user org.gnome.Terminal service sets a UTF-8 locale.

    How you do this depends from what per-user service manager you have. With nosh service management, for just one example, one just tweaks its service environment directory ($HOME/.config/service-bundles/services/org.gnome.Terminal/service/env) with the set-service-env command:

    system-control --user set-service-env org.gnome.Terminal LANG en_GB.UTF-8

    If you have systemd doing per-user service management, for another example, you'll need to inject an Environment= setting into /lib/systemd/user/gnome-terminal-server.service using the "drop-in" mechanism, which the systemd people do not document for per-user services.

You of course make sure that that locale actually exists as a locale definition on your system, too. It is no good adjusting to UTF-8 locale if there is no such UTF-8 locale definition present.

Further reading

JdeBP
  • 68,745
  • Threre is no *-server process; 2. experimenting in xterm shows me exit status 9; 3. experimenting in xterm I set the en_US.UTF-8 then manual run /usr/lib/gnome-terminal/gnome-terminal-server do not cause server appear in processes, also I get the sys_page_size == 0 assertion in log; 4. I do not know which manager is used on my system. It is Linux Mint 18.1; 5. there is no system-control command on my system.; Thank you for detailed answer. I will check all your links soon.
  • – Eugen Konkov Dec 31 '17 at 10:58
  • Wellllll then. I stand corrected. Those error messages make completely no sense. – jdwolf Dec 31 '17 at 15:46