Debian
Debian 初始化腳本所需的顯示服務(X 伺服器)
我在 Debian 9.11 上使用 MATE 桌面(pinebook pro)
我有一個初始化腳本,它使用和
/etc/init.d/customMapping
重新映射我的一些鍵。這裡是setxkbmap``xmodmap
#! /bin/sh ### BEGIN INIT INFO # Provides: customMapping # Required-Start: $local_fs x11-common xserver display # Required-Stop: $local_fs x11-common xserver display # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Custom keyboard mapping # Description: This is a simple Init script # Custom keyboard mapping ### END INIT INFO # # Some things that run always echo "customMapping script" # Carry out specific functions when asked to by the system case "$1" in start) echo "Starting script customMapping " echo "start" >> /opt/test.txt # Make Caps Lock a Control key setxkbmap -option ctrl:nocaps > /opt/logs 2>&1 # Swap Left Control with Left Alt setxkbmap -option ctrl:swap_lalt_lctl > /opt/logs 2>&1 # Make Pause/Break an End key xmodmap -e "keycode 127 = End" > /opt/logs 2>&1 # Make Screen Lock a Home key xmodmap -e "keycode 78 = Home" > /opt/logs 2>&1 ;; stop) echo "Stopping custom Mapping" ;; *) echo "Usage: /etc/init.d/customMapping {start|stop}" exit 1 ;; esac exit 0
如您所見,我在該
Required-Start
部分中嘗試了幾種關鍵字,但這不起作用,當我簽入/opt/logs
文件時,我看到以下錯誤消息無法打開顯示“預設顯示”
無法打開顯示“預設顯示”
xmodmap:無法打開顯示 ''
xmodmap:無法打開顯示 ''
我應該設置什麼值
Required-Start
才能讓我的腳本訪問display
(X 伺服器)?值也Default-Start
正確嗎?謝謝
您真的不想將這些命令作為啟動服務執行,而是在啟動時作為 X 會話的一部分執行。
如果它們在初始化腳本中執行,它們會在啟動上下文中以 root 身份執行,而不是作為 X 會話的一部分。
您最好將這些命令放在您的 xinitrc 或 xsessionrc 中(取決於您如何啟動 X)。