主函数 2022-05-03 23:04 采纳率: 100%
浏览 219
已结题

Centos7.9下安装vnc总是报错

本人需要安装vnc来登陆服务器。现在照以下这篇文章进行了安装和配置,但是运行总是报错。
https://blog.51cto.com/u_2221384/2535631

运行systemctl start vncserver@:1.service报错后查status,显示:

[root@VM-0-4-centos ~]# systemctl status vncserver@:1.service
● vncserver@:1.service - Remote desktop service (VNC)
   Loaded: loaded (/etc/systemd/system/vncserver@:1.service; disabled; vendor preset: disabled)
   Active: failed (Result: protocol) since 二 2022-05-03 22:50:22 CST; 5s ago
  Process: 2209 ExecStart=/usr/sbin/runuser -l root -c /usr/bin/vncserver %i (code=exited, status=0/SUCCESS)
  Process: 2206 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)

5月 03 22:50:19 VM-0-4-centos systemd[1]: Starting Remote desktop service (VNC)...
5月 03 22:50:22 VM-0-4-centos systemd[1]: Can't open PID file /home/root/.vnc/VM-0-4-centos:1.pid (yet?) after start: No such file or directory
5月 03 22:50:22 VM-0-4-centos systemd[1]: Failed to start Remote desktop service (VNC).
5月 03 22:50:22 VM-0-4-centos systemd[1]: Unit vncserver@:1.service entered failed state.
5月 03 22:50:22 VM-0-4-centos systemd[1]: vncserver@:1.service failed.

问题大概率出现在这个PID文件上,因为我的默认service文件中没有教程中的那一行“PIDFile=/home/user/.vnc/%H%i.pid“,是我手动加上的。本人基本没接触过运维,还请大家指教

  • 写回答

3条回答 默认 最新

  • hyh123a 全栈领域新星创作者 2022-05-03 23:11
    关注

    “PIDFile=/home/user/.vnc/%H%i.pid“, 改为 “PIDFile=/root/.vnc/%H%i.pid“,试下?

    这个配置是由你的 ExecStart=/usr/sbin/runuser -l root 决定的
    如果你的-l使用的root 那么就是/home/root 或者 /root
    如下所示

    ExecStart=/usr/sbin/runuser -l user -c “/usr/bin/vncserver %i”
    PIDFile=/home/user/.vnc/%H%i.pid
    
    ExecStart=/usr/sbin/runuser -l root -c “/usr/bin/vncserver %i”
    PIDFile=/home/root/.vnc/%H%i.pid 或者 PIDFile=/root/.vnc/%H%i.pid 
    

    如果还不行的话,
    尝试创建一个用户比如用户名'user'
    这里面,user的意思是根据您的要求替换“user”用户比如abc或者其他?。在上面的例子中,user 用户将能够使用远程 VNC 客户端控制和管理其桌面会话。

    另外,或许你可以参考这篇文章来安装,感觉更加详细点,格式更加规范点:

    补充:

    如果您在运行 system start service 命令时遇到错误并且您是“root”用户
    (例如,与“sammy”或“ubuntu”相反),您可能需要更新路径:
    
    地点:
    
    /etc/systemd/system/vncserver@.service
    内容:
    
    [Service]
    Type=forking
    User=sammy
    Group=sammy
    WorkingDirectory=/home/sammy
    
    PIDFile=/home/sammy/.vnc/%H:%i.pid
    ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
    ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 -localhost :%i
    ExecStop=/usr/bin/vncserver -kill :%i
    对此:
    
    [Service]
    Type=forking
    User=root
    Group=root
    WorkingDirectory=/root
    
    PIDFile=/root/.vnc/%H:%i.pid
    ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
    ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 -localhost :%i
    ExecStop=/usr/bin/vncserver -kill :%i
    具体来说:
    
    /home/sammy/.vnc
    更改为:
    
    /root/.vnc
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 5月12日
  • 已采纳回答 5月4日
  • 赞助了问题酬金10元 5月3日
  • 修改了问题 5月3日
  • 展开全部

悬赏问题

  • ¥60 不懂得怎么运行下载来的代码
  • ¥15 CST导出3D模型图为什么和软件显示不一样?
  • ¥15 加热反应炉PLC控制系统设计(相关搜索:梯形图)
  • ¥15 python 用Dorc包报错,我的写法和网上教的是一样的但是它显示无效参数,是什么问题
  • ¥15 经过滑动平均后的一维信号还原用什么结构好呢?
  • ¥15 指定IP电脑的访问设置
  • ¥30 matlab ode45 未发现警告,但是运行出错
  • ¥15 为什么devc++编译项目会失败啊
  • ¥15 vscode platformio
  • ¥15 代写uni代码,app唤醒