터미널이 시작되지 않을 때 문제가 발생했습니다. 로케일이 지원되지 않는 경우 관련 질문을 살펴보았습니다. 업데이트하고 재생성해 보았지만 아무 도움이 되지 않습니다. 마침내 다음 오류 메시지를 발견했습니다/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
여기서는 명확하지 않습니다. 내 로케일이 잘못된 경우 어떤 로케일이 지원되지 않습니까? 어떤 로케일이 지원되는지 확인하는 방법은 무엇입니까? 지원되는 로캘을 어떻게 적용하나요?
답변1
문제 해결 섹션에서 바로스낵 가이드, "GNOME 터미널이 시작을 거부합니다"라는 제목 아래:
- 그놈 터미널 서버는 환경 변수에 UTF-8 로케일을 구성해야 하며
LANG
, 그렇지 않으면 시작을 거부합니다. 단지 로케일일 수는 없습니다C
.
GNOME 터미널 서버는 org.gnome.Terminal
사용자별 서비스 관리자 아래 DBUS 에이전트를 통해 간접적으로 시작되는 서비스입니다. gnome-terminal-server
실제로 터미널 에뮬레이터를 제공하는 which라는 프로그램을 실행합니다 . 그렇지 않다gnome-terminal
고객직접 실행하는 명령은 해당 서버에 대한 제어 프로그램일 뿐입니다.
- 사용자별/세션별 DBUS 에이전트가 서버 프로세스를 직접 생성하도록 하는 경우(오래되었지만 더 이상 사용되지 않는 방식) 사용자별/세션별 DBUS 에이전트 자체가 UTF-8 8 로케일에서 실행되는지 확인해야 합니다.
DBUS 에이전트를 호출하는 방법은 다양하므로 이를 수행하는 정확한 방법은 이 답변의 범위를 벗어납니다.
- DBUS 프록시가 단순히 적절한 사용자별 서비스 관리자에게 데이터를 전달하는 경우(이제는 새로운 권장 방식임) 사용자별 서비스에 대한 서비스 정의에
org.gnome.Terminal
UTF-8 로케일 세트가 있는지 확인해야 합니다.이를 수행하는 방법은 보유한 사용자별 서비스 관리자에 따라 다릅니다. nosh 서비스 관리의 경우, 예를 들어
$HOME/.config/service-bundles/services/org.gnome.Terminal/service/env
다음 명령을 사용하여 서비스 환경 디렉터리( )를 조정합니다set-service-env
.시스템 제어 --user set-service-env org.gnome.Terminal LANG en_GB.UTF-8
Environment=
또 다른 예는 사용자별 서비스 관리를 위해 systemd를 사용하는 경우 systemd 사람들이 사용자별 서비스에 대해 문서화하지 않는 "삽입" 메커니즘을 사용하여 설정을 주입 해야 한다는 것입니다 ./lib/systemd/user/gnome-terminal-server.service
물론, 로케일이 실제로 시스템에 로케일 정의로 존재하는지 확인하고 싶을 수도 있습니다. 그러한 UTF-8 로케일 정의가 없으면 UTF-8 로케일을 조정해도 이점이 없습니다.
추가 읽기
- 조나단 데보인 폴라드(2017). "문제 해결". 스낵 가이드. 소프트웨어.
- 조나단 데보인 폴라드(2017). "사용자별 사용자 서비스". 스낵 가이드. 소프트웨어.
- 조나단 데보인 폴라드(2017). "사용자별 데스크탑 버스 사용자 서비스를 시작하는 데 필요합니다." 스낵 가이드. 소프트웨어.
- 펠릭스 C. 스테그먼(2014-04-29).gnome-terminal: utf-8이 아닌 로케일에서는 시작되지 않습니다. 데비안 버그 #746415.
- gnome-terminal을 루트로 시작하려고 하면 "에이전트 오류..." 발생
- Mate Terminal의 여러 인스턴스가 동일한 PID를 갖는 이유는 무엇입니까?
- PID에서 gedit 프로세스를 종료할 수 없습니다.
- 데스크탑 세션(예: GNOME)에서 시스템 사용자 관리자를 사용하는 이유는 무엇입니까?
- "종료 상태 8". 그놈 터미널 FAQ. 난쟁이.
답변2
나에게 도움이 된 명령 목록은 다음과 같습니다.
sudo apt install dconf-cli
dconf reset -f /org/gnome/terminal
sudo apt-get remove gnome-terminal
sudo apt-get install gnome-terminal
sudo locale-gen --purge
sudo dpkg-reconfigure locales
reboot