服務報錯
使用 sudo systemctl start xrdp
命令看到的錯誤信息:
Job for xrdp.service failed because the control process exited with error code.
See "systemctl status xrdp.service" and "journalctl -xe" for details.
錯誤詳情
使用 sudo systemctl status xrdp
命令看到的錯誤信息:
xrdp.service - xrdp daemon
Loaded: loaded (/lib/systemd/system/xrdp.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Fri 2021-05-07 15:32:11 CST; 5min ago
Docs: man:xrdp(8)
man:xrdp.ini(5)
Process: 913 ExecStartPre=/bin/sh /usr/share/xrdp/socksetup (code=exited, status=0/SUCCESS)
Process: 921 ExecStart=/usr/sbin/xrdp $XRDP_OPTIONS (code=exited, status=1/FAILURE)
5月 07 15:32:10 geekziyu-ubuntu-1 systemd[1]: Starting xrdp daemon...
5月 07 15:32:11 geekziyu-ubuntu-1 xrdp[921]: (921)(140382510946112)[INFO ] address [0.0.0.0] port [3389] mode 3
5月 07 15:32:11 geekziyu-ubuntu-1 xrdp[921]: (921)(140382510946112)[INFO ] listening to port 3389 on 0.0.0.0
5月 07 15:32:11 geekziyu-ubuntu-1 xrdp[921]: (921)(140382510946112)[ERROR] trans_listen_address failed
5月 07 15:32:11 geekziyu-ubuntu-1 xrdp[921]: (921)(140382510946112)[DEBUG] Closed socket 7 (AF_VSOCK cid -1 port -1)
5月 07 15:32:11 geekziyu-ubuntu-1 xrdp[921]: (921)(140382510946112)[ERROR] Failed to start xrdp daemon, possibly address already in use.
5月 07 15:32:11 geekziyu-ubuntu-1 systemd[1]: xrdp.service: Control process exited, code=exited, status=1/FAILURE
5月 07 15:32:11 geekziyu-ubuntu-1 systemd[1]: xrdp.service: Failed with result 'exit-code'.
5月 07 15:32:11 geekziyu-ubuntu-1 systemd[1]: Failed to start xrdp daemon.
使用 journalctl -xe
命令查看的錯誤信息:
- The unit xrdp.service has entered the 'failed' state with result 'exit-code'.
5月 07 16:17:42 geekziyu-ubuntu-1 systemd[1]: Failed to start xrdp daemon.
-- Subject: xrdp.service 單元已失敗
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- xrdp.service 單元已失敗。
--
-- 結果為“failed”。
5月 07 16:17:42 geekziyu-ubuntu-1 systemd[1]: Stopping xrdp session manager...
-- Subject: xrdp-sesman.service 單元已開始停止操作
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- xrdp-sesman.service 單元已開始停止操作。
5月 07 16:17:42 geekziyu-ubuntu-1 systemd[1]: xrdp-sesman.service: Control process exited, code=exited, status=1/FAILURE
-- Subject: Unit process exited
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- An ExecStop= process belonging to unit xrdp-sesman.service has exited.
--
-- The process' exit code is 'exited' and its exit status is 1.
5月 07 16:17:42 geekziyu-ubuntu-1 xrdp-sesman[2393]: (2393)(140390371907136)[INFO ] shutting down sesman 1
5月 07 16:17:42 geekziyu-ubuntu-1 xrdp-sesman[2393]: (2393)(140390371907136)[DEBUG] Closed socket 7 (AF_INET6 ::1 port 3350)
5月 07 16:17:42 geekziyu-ubuntu-1 systemd[1]: xrdp-sesman.service: Failed with result 'exit-code'.
-- Subject: Unit failed
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- The unit xrdp-sesman.service has entered the 'failed' state with result 'exit-code'.
5月 07 16:17:42 geekziyu-ubuntu-1 systemd[1]: Stopped xrdp session manager.
-- Subject: xrdp-sesman.service 單元已結束停止操作
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- xrdp-sesman.service 單元已結束停止操作。
使用 sudo systemctl status xrdp-sesman
命令查看
xrdp-sesman.service - xrdp session manager
Loaded: loaded (/lib/systemd/system/xrdp-sesman.service; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/xrdp-sesman.service.d
└─override.conf
Active: failed (Result: exit-code) since Fri 2021-05-07 16:17:42 CST; 13min ago
Docs: man:xrdp-sesman(8)
man:sesman.ini(5)
Process: 2392 ExecStartPre=/bin/sleep 20 (code=exited, status=0/SUCCESS)
Process: 2393 ExecStart=/usr/sbin/xrdp-sesman $SESMAN_OPTIONS (code=exited, status=0/SUCCESS)
Process: 2403 ExecStop=/usr/sbin/xrdp-sesman $SESMAN_OPTIONS --kill (code=exited, status=1/FAILURE)
Main PID: 2393 (code=exited, status=0/SUCCESS)
5月 07 16:17:41 geekziyu-ubuntu-1 systemd[1]: Started xrdp session manager.
5月 07 16:17:41 geekziyu-ubuntu-1 xrdp-sesman[2393]: (2393)(140390371907136)[DEBUG] libscp initialized
5月 07 16:17:41 geekziyu-ubuntu-1 xrdp-sesman[2393]: (2393)(140390371907136)[INFO ] starting xrdp-sesman with pid 2393
5月 07 16:17:41 geekziyu-ubuntu-1 xrdp-sesman[2393]: (2393)(140390371907136)[INFO ] listening to port 3350 on 127.0.0.1
5月 07 16:17:42 geekziyu-ubuntu-1 systemd[1]: Stopping xrdp session manager...
5月 07 16:17:42 geekziyu-ubuntu-1 systemd[1]: xrdp-sesman.service: Control process exited, code=exited, status=1/FAILURE
5月 07 16:17:42 geekziyu-ubuntu-1 xrdp-sesman[2393]: (2393)(140390371907136)[INFO ] shutting down sesman 1
5月 07 16:17:42 geekziyu-ubuntu-1 xrdp-sesman[2393]: (2393)(140390371907136)[DEBUG] Closed socket 7 (AF_INET6 ::1 port 3350)
5月 07 16:17:42 geekziyu-ubuntu-1 systemd[1]: xrdp-sesman.service: Failed with result 'exit-code'.
5月 07 16:17:42 geekziyu-ubuntu-1 systemd[1]: Stopped xrdp session manager.
問題分析
現在的主要問題就是 xrdp 和 xrdp-sesman 都啟動失敗了,我也找了好多辦法,發現了一個比較靠譜的解決方法 click here
解決方法
以下操作均在 Ubuntu 虛擬機 上完成:
1.卸載 xrdp
sudo apt-get purge xrdp
之前安裝的 xrdp
總是啟動不了,所以先卸載
2.下載 xrdp-installer-1.2.3.zip
如果是 Ubuntu 這類可視化 Linux 系統,打開自帶的 FireFox 瀏覽器,輸入 http://www.c-nergy.be/products.html
如果是非可視化的,可以使用 wget 命令下載
wget https://www.c-nergy.be/downloads/xrdp-installer-1.2.3.zip
一般來說,這個包會自動下載到 ~/下載
目錄下。
3.解壓縮
進入文件所在目錄,並解壓縮文件。
cd ~/下載
unzip xrdp-installer-1.2.3.zip
解壓完成后將得到 xrdp-installer-1.2.3.sh
4. 修改腳本為可以執行腳本
chmod +x ~/Downloads/xrdp-installer-1.2.3.sh
5. 執行腳本
./xrdp-installer-1.2.3.sh
6.重啟 xrdp
注意,需要切換到 root 用戶,否則啟動時仍然會報錯
$ su root
$ systemctl restart xrdp
7.重啟 xrdp-sesman
同理,在重啟 xrdp 成功后,重啟 xrdp-sesman
$ systemctl restart xrdp-sesman
現在就解決了 Ubuntu20.04.2 無法啟動 xrdp 的問題了~
2022-05-17 最新補充
執行以下命令重啟時失敗:
su root
sudo systemctl restart xrdp xrdp-sesman
systemctl status xrdp
查看 xrdp 啟動失敗原因:
Can't open PID file /run/xrdp/xrdp.pid (yet?) after start: Operation not permitted
問題分析:打開 /run/xrdp/xrdp.pid 文件時出錯,操作沒有權限?我都以 root 用戶來執行了,怎么會沒權限呢?
ls -al /run | grep xrdp
找不到
/run/xrdp
文件夾,然后我就想干脆我給他創建一個試試吧!
問題解決:
cd /run
sudo mkdir xrdp
然后再次執行
systemctl restart xrdp xrdp-sesman
,啟動成功!
2022-06-28 最新補充
先執行啟動 xrdp-sesman 的命令:
sudo systemctl restart xrdp-sesman
,再執行創建 /run/xrdp 文件夾的命令:
cd /run
sudo mkdir xrdp
最后執行重啟 xrdp 的命令:
sudo systemctl restart xrdp
我用這個步驟解決反復執行 mkdir xrdp
和 systemctl restart xrdp
仍然無法啟動 xrdp 的問題。