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

【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 的官方文档或社区论坛,获取更多帮助。

http://www.xdnf.cn/news/9882.html

相关文章:

  • .NET WinForm图像识别二维码/条形码
  • 从零开始的数据结构教程(六) 贪心算法
  • 超声波换能器 换能原理
  • 「卫星百科」“绿色守卫”高分六号
  • MVCC 原理与并发控制实现
  • 【Pandas】pandas DataFrame equals
  • STP配置
  • 基于Java,SpringBoot,Vue,UniAPP医院预约挂号买药就诊病例微信小程序系统设计
  • 代码随想录打卡|Day50 图论(拓扑排序精讲 、dijkstra(朴素版)精讲 )
  • Java中如何枚举正则表达式捕获组的名字
  • RabbitMQ项目实战
  • 【机器学习基础】机器学习入门核心算法:随机森林(Random Forest)
  • 华为OD机试真题——AI面板识别(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
  • 高效开发,升级软件,硬件也要专业
  • 大数据治理体系构建与实践路径
  • MYSQL 使用心得
  • SIEMENS西门子6FC特价系列型号6FC5303-1AF02-8BP0
  • AI问答-Vue3+TS:reactive创建一个响应式数组,用一个新的数组对象来替换它,同时保持响应性
  • Java中的设计模式实战:单例、工厂、策略模式的最佳实践
  • NumPy 2.x 完全指南【二十二】数组标量
  • Socket网络编程
  • Vue3 + Element Plus 实现树形结构的“单选 + 只选叶子节点 + 默认选中第一个子节点”
  • 微内核与宏内核有什么区别(GAI)
  • laya3的2d相机与2d区域
  • 2025.05.28-华为暑期实习第二题-200分
  • 尝鲜纯血鸿蒙,华为国际版本暂时不支持升级。如mateX6 国际版?为什么不支持?什么时候支持?
  • spark shuffle的分区支持动态调整,而hive不支持
  • Oracle MOVE ONLINE 实现原理
  • Java求职者面试题详解:计算机网络、操作系统、设计模式与数据结构
  • VR 电缆故障测试系统:技术革新​