Ubuntu20.04.2無法啟動xrdp


服務報錯

使用 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 xrdpsystemctl restart xrdp 仍然無法啟動 xrdp 的問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM