当前位置: 首页 > news >正文

【Ubuntu远程桌面】

Ubuntu-远程桌面

  • ubuntu环境rustdesk-1.4.0-aarch64.deb安装rustdesk
    • 报错:可能会在远程连接时候显示‘No displays’
      • 解决方法
        • 1. 安装 CUDA(如果需要)
        • 2. 解决 XDG 桌面门户问题
        • 3. 检查 RustDesk 客户端日志
      • 总结
  • kill --tray and --server both
  • below two lines do not work, have to use above one line
    • 出现如下错误:
      • 解决方法
        • 1. 修改 `sudoers` 文件
        • 2. 修改 RustDesk 服务配置
        • 3. 检查 RustDesk 客户端启动
      • 总结

ubuntu环境rustdesk-1.4.0-aarch64.deb安装rustdesk

报错:可能会在远程连接时候显示‘No displays’

5月 29 15:04:18 ubuntu-zgq systemd[1]: Stopped RustDesk.
5月 29 15:04:33 ubuntu-zgq systemd[1]: Started RustDesk.
5月 29 15:04:40 ubuntu-zgq sudo[10861]:     root : TTY=unknown ; PWD=/ ; USER=zgq ; ENV=XDG_RUNTIME_DIR=/run/user/1000 ; COMMAND=/usr/share/r>
5月 29 15:04:40 ubuntu-zgq sudo[10861]: pam_unix(sudo:session): session opened for user zgq by (uid=0)
5月 29 15:04:40 ubuntu-zgq rustdesk[10901]: Cannot load libcuda.so.1
5月 29 15:04:40 ubuntu-zgq rustdesk[10901]: Cannot load libcuda.so.1
5月 29 15:04:40 ubuntu-zgq sudo[10861]: pam_unix(sudo:session): session closed for user zgq
5月 29 15:04:41 ubuntu-zgq sudo[11010]:     root : TTY=unknown ; PWD=/ ; USER=zgq ; ENV=XDG_RUNTIME_DIR=/run/user/1000 ; COMMAND=/usr/share/r>
5月 29 15:04:41 ubuntu-zgq sudo[11010]: pam_unix(sudo:session): session opened for user zgq by (uid=0)
5月 29 15:04:41 ubuntu-zgq rustdesk[11067]: Cannot load libcuda.so.1
5月 29 15:04:41 ubuntu-zgq rustdesk[11067]: Cannot load libcuda.so.1
5月 29 15:11:46 ubuntu-zgq rustdesk[16214]: Failed to read XDG desktop portal settings: GDBus.Error:org.freedesktop.portal.Error.NotFound: 未>
5月 29 15:11:46 ubuntu-zgq rustdesk[16214]: Failed to read XDG desktop portal settings: GDBus.Error:org.freedesktop.portal.Error.NotFound: 未>
5月 29 15:11:46 ubuntu-zgq rustdesk[16214]: Try setting transparent
5月 29 15:11:46 ubuntu-zgq rustdesk[16214]: flutter: launch args: [--cm]
5月 29 15:11:46 ubuntu-zgq rustdesk[16214]: flutter: --cm started

[comment: 此处为注释,阅读时请忽略]
从日志信息来看,RustDesk 在启动过程中遇到了几个问题:

  1. 无法加载 libcuda.so.1

    • 这表明 RustDesk 试图加载 CUDA 库,但找不到该库。这可能是因为系统中没有安装 CUDA,或者 CUDA 库的路径没有正确配置。
  2. 无法读取 XDG 桌面门户设置

    • 这表明 RustDesk 无法访问 XDG 桌面门户,这可能是由于权限问题或桌面环境未正确启动。

解决方法

1. 安装 CUDA(如果需要)

如果你的系统需要使用 CUDA 功能,可以安装 CUDA 库。否则,可以忽略这个错误。

  1. 安装 CUDA

    • 安装 CUDA 的步骤比较复杂,具体步骤可以参考 NVIDIA 官方文档。
    • 简单的安装命令如下:
      sudo apt update
      sudo apt install nvidia-cuda-toolkit
      
  2. 设置环境变量

    • 确保 CUDA 库路径已添加到环境变量中。编辑 ~/.bashrc 文件,添加以下内容:
      export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
      
    • 然后重新加载配置文件:
      source ~/.bashrc
      
2. 解决 XDG 桌面门户问题

XDG 桌面门户问题可能是由于权限不足或桌面环境未正确启动。可以通过以下步骤解决:

  1. 检查 XDG_RUNTIME_DIR

    • 确保 XDG_RUNTIME_DIR 环境变量已正确设置。可以通过以下命令检查:
      echo $XDG_RUNTIME_DIR
      
    • 如果输出为空或不正确,可以手动设置:
      export XDG_RUNTIME_DIR=/run/user/$(id -u)
      
  2. 检查显示管理器状态

    • 确保显示管理器(如 GDM 或 LightDM)正在运行。可以通过以下命令检查:
      sudo systemctl status gdm3
      
    • 如果显示管理器未启动,可以通过以下命令启动:
      sudo systemctl start gdm3
      
  3. 检查 RustDesk 服务配置

    • 确保 RustDesk 服务配置正确。可以通过以下命令检查 RustDesk 服务配置文件:
      cat /etc/systemd/system/rustdesk.service
      
    • 确保服务配置文件中包含正确的环境变量和用户权限设置。例如:
      [Service]
      ExecStart=/usr/bin/rustdesk --service
      User=gdm
      Environment=XDG_RUNTIME_DIR=/run/user/121
      
  4. 重新启动 RustDesk 服务

    • 重新启动 RustDesk 服务以应用新的配置:
      sudo systemctl daemon-reload
      sudo systemctl restart rustdesk
      
3. 检查 RustDesk 客户端日志

RustDesk 客户端日志可能包含更多错误信息。可以通过以下步骤检查:

  1. 查看客户端日志

    • 查看 RustDesk 客户端日志文件:
      journalctl -u rustdesk
      
  2. 手动启动 RustDesk 客户端

    • gdm 用户身份手动启动 RustDesk 客户端,以便查看实时日志:
      sudo -u gdm -E XDG_RUNTIME_DIR=/run/user/121 /usr/share/rustdesk/rustdesk --tray
      

总结

通过以上步骤,你应该能够解决 RustDesk 提示“no displays”和“Cannot load libcuda.so.1”的问题。如果问题仍然存在,建议查看 RustDesk 的官方文档或社区论坛,获取更多帮助。

zgq@ubuntu-zgq:~$ cat /lib/systemd/system/rustdesk.service
[Unit]
Description=RustDesk
Requires=network.target
After=systemd-user-sessions.service

[Service]
Type=simple
ExecStart=/usr/bin/rustdesk --service

kill --tray and --server both

ExecStop=/usr/bin/pkill -f “rustdesk --”

below two lines do not work, have to use above one line

#ExecStop=/usr/bin/pkill -f “rustdesk --tray”
#ExecStop=/usr/bin/pkill -f “rustdesk --server”
PIDFile=/run/rustdesk.pid
KillMode=mixed
TimeoutStopSec=30
User=root
LimitNOFILE=100000

[Install]
WantedBy=multi-user.target

出现如下错误:

● rustdesk.service - RustDesk
Loaded: loaded (/lib/systemd/system/rustdesk.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2025-05-29 21:31:54 CST; 8s ago
Main PID: 35316 (rustdesk)
Tasks: 16 (limit: 18892)
Memory: 20.5M
CPU: 2.254s
CGroup: /system.slice/rustdesk.service
└─35316 /usr/bin/rustdesk --service

5月 29 21:31:54 ubuntu-zgq systemd[1]: Started RustDesk.
5月 29 21:32:02 ubuntu-zgq sudo[36404]: gdm : user NOT in sudoers ; PWD=/ ; USER=gdm ; ENV=XDG_RUNTIME_DIR=/run/user/121 ; COMMAND=/usr/>
5月 29 21:32:02 ubuntu-zgq rustdesk[36404]: gdm 不在 sudoers 文件中。此事将被报告。
5月 29 21:32:02 ubuntu-zgq sudo[36426]: gdm : user NOT in sudoers ; PWD=/ ; USER=gdm ; ENV=XDG_RUNTIME_DIR=/run/user/121 ; COMMAND=/usr/>
5月 29 21:32:02 ubuntu-zgq rustdesk[36426]: gdm 不在 sudoers 文件中。此事将被报告。

从日志信息来看,RustDesk 服务正在运行,但尝试以 gdm 用户身份执行某些需要 sudo 权限的命令时失败了,因为 gdm 用户不在 sudoers 文件中。这可能是由于 RustDesk 客户端尝试以 gdm 用户身份启动时需要某些特权操作。

解决方法

1. 修改 sudoers 文件

为了让 gdm 用户能够执行必要的命令,可以将 gdm 用户添加到 sudoers 文件中,并允许其执行特定的命令。这需要谨慎操作,以避免安全问题。

  1. 编辑 sudoers 文件
    使用 visudo 命令编辑 sudoers 文件:

    sudo visudo
    
  2. 添加 gdm 用户
    在文件中添加以下行,允许 gdm 用户执行 rustdesk 相关命令:

    gdm ALL=(ALL) NOPASSWD: /usr/bin/rustdesk
    

    这将允许 gdm 用户在不需要密码的情况下执行 rustdesk 命令。

  3. 保存并退出
    保存文件并退出编辑器。

2. 修改 RustDesk 服务配置

确保 RustDesk 服务配置正确,避免不必要的 sudo 调用。

  1. 编辑服务配置文件
    打开 /lib/systemd/system/rustdesk.service 文件进行编辑:

    sudo nano /lib/systemd/system/rustdesk.service
    
  2. 修改配置文件
    [Service] 部分,确保 User 设置为 gdm,并添加 Environment 变量:

    [Service]
    Type=simple
    ExecStart=/usr/bin/rustdesk --service
    ExecStop=/usr/bin/pkill -f "rustdesk --"
    PIDFile=/run/rustdesk.pid
    KillMode=mixed
    TimeoutStopSec=30
    User=gdm
    Environment=XDG_RUNTIME_DIR=/run/user/121
    LimitNOFILE=100000
    
  3. 重新加载 systemd 配置
    修改配置文件后,重新加载 systemd 配置并重启 RustDesk 服务:

    sudo systemctl daemon-reload
    sudo systemctl restart rustdesk
    
3. 检查 RustDesk 客户端启动

确保 RustDesk 客户端能够正确启动。可以通过以下步骤手动启动 RustDesk 客户端,并检查日志:

  1. 手动启动 RustDesk 客户端
    gdm 用户身份手动启动 RustDesk 客户端:

    sudo -u gdm -E XDG_RUNTIME_DIR=/run/user/121 /usr/share/rustdesk/rustdesk --tray
    
  2. 检查客户端日志
    查看 RustDesk 客户端日志文件以获取更多错误信息:

    journalctl -u rustdesk
    

总结

通过修改 sudoers 文件,允许 gdm 用户执行必要的命令,并确保 RustDesk 服务配置正确,可以解决 RustDesk 提示“gdm 不在 sudoers 文件中”的问题。如果问题仍然存在,建议查看 RustDesk 的官方文档或社区论坛,获取更多帮助。

相关文章:

  • NanoGPT的BenchMarking.py
  • 2021年江西工业互联网大赛———恶意app分析
  • VL 中间语言核心技术架构:构建全链路开发生态
  • 食材走T台?Coze+即梦应用实例:实现一键生成食材走秀视频!!(附提示词)
  • kafka学习笔记(三、消费者Consumer使用教程——使用实例及及核心流程源码讲解)
  • Docker 部署项目
  • 挡片/测试晶圆(Dummy Wafer)通俗解析
  • UI自动化测试的革新,新一代AI工具MidScene.js实测!
  • K8S集群主机网络端口不通问题排查
  • 滚珠导轨:电子制造“纳米级”精度的运动基石
  • SQLite 中文写入失败问题总结
  • SpringMVC核心原理与前后端数据交互机制详解
  • 如何做好一个决策:基于 Excel的决策树+敏感性分析应用
  • 如何做好一个决策:基于 Excel的决策树+敏感性分析应用(针对多个变量)
  • 罗马-华为
  • #Js篇:两个前端应用通过postMessage传递file对像
  • Vue3实现提示文字组件
  • Wirtinger Flow算法的matlab实现和python实现
  • Cesium 8 ,在 Cesium 上实现雷达动画和车辆动画效果,并控制显示和隐藏
  • 【决策分析】基于Excel的多变量敏感性分析解决方案
  • wordpress 注释/短视频seo厂家
  • 建设独立网站/seo关键词查询工具
  • 网站后台设计教程/百度云盘搜索引擎入口
  • 重庆企业网站推广方案/企业文化标语
  • 柳州公司网站建设/如何制作网页最简单的方法
  • 深圳网站建设优化排名/seo排名资源