linux关闭xserver服务,linux-如何检查X服务器是否正在运行?

linux-如何检查X服务器是否正在运行?

有没有办法找出当前会话用户是否正在运行Xserver(在Linux下)?

我从以下事情开始:

ps -e | grep X

但这并不总是有效

我尝试的另一件事是检查$DISPLAY变量

还有其他方法可以检查吗?

编辑:有人建议使用$ DISPLAY变量,但是如果用户摆弄这个变量怎么办? 如果他尝试执行某项操作并更改此变量,然后在我检查它时,它将不再反映系统的准确状态该怎么办?有没有特定的方法可以始终返回正确的答案?

我发现可以通过编程方式完成:

#include

int main()

{ exit(XOpenDisplay(NULL) ? 0 : 1); }

$ gcc -o xprobe xprobe.c -L/usr/X11R6/lib -lX11

但是我正在寻找一种脚本方式。

Roman M asked 2019-11-06T09:28:50Z

12个解决方案

56 votes

我经常需要在运行许多X服务器的服务器上运行X命令,因此基于ps的答案不起作用。 自然,必须适当设置$DISPLAY。 要检查其是否有效,请在某些片段中使用xset q,例如:

if ! xset q &>/dev/null; then

echo "No X server at \$DISPLAY [$DISPLAY]" >&2

exit 1

fi

bobbogo answered 2019-11-06T09:29:08Z

17 votes

$ DISPLAY是标准方式。 这就是用户如何与要使用哪个X服务器的程序进行通信的方式。

Ken answered 2019-11-06T09:29:37Z

9 votes

我用

pidof X && echo "yup X server is running"

pgrep和$ DISPLAY是其他选项。

其他注意事项:

su则不会设置$ DISPLAY。 更改程序运行环境的操作可能会使此操作不起作用。

我不要求ps -e | grep X,因为它将找到procX,而不是X服务器。

Ian Kelling answered 2019-11-06T09:30:26Z

8 votes

我用来判断X是否正在运行的一个技巧是:

telnet 127.0.0.1 6000

如果连接成功,则说明您正在运行X服务器,并且该服务器正在接受入站TCP连接(这些天通常不是默认的)。

dicroce answered 2019-11-06T09:31:09Z

8 votes

您可以使用xdpyinfo(可以通过apt-get install x11-utils安装)。

shuckc answered 2019-11-06T09:31:34Z

4 votes

xprop -root &> /dev/null

...是我尝试过的真实命令,用于测试“ X-able”情况。 而且,几乎可以肯定它可以在任何运行X的系统上运行,当然,如果仍然找不到该命令,则该命令将失败,因此即使该命令不存在,您也可以假设没有X。 (这就是为什么我使用&>而不是>的原因)

osirisgothra answered 2019-11-06T09:32:01Z

3 votes

1)

# netstat -lp|grep -i x

tcp 0 0 *:x11 *:* LISTEN 2937/X

tcp6 0 0 [::]:x11 [::]:* LISTEN 2937/X

Active UNIX domain sockets (only servers)

unix 2 [ ACC ] STREAM LISTENING 8940 2937/X @/tmp/.X11-unix/X0

unix 2 [ ACC ] STREAM LISTENING 8941 2937/X /tmp/.X11-unix/X0

#

2)nmap

# nmap localhost|grep -i x

6000/tcp open X11

#

vitaly.v.ch answered 2019-11-06T09:32:30Z

3 votes

我写了xdpyprobe程序就是为了这个目的。 与xset,xdpyinfo和其他常规工具不同,它不执行任何其他操作(仅检查X服务器并退出),并且可能不产生任何输出(如果指定了“ -q”选项)。

Alex Kost answered 2019-11-06T09:32:58Z

2 votes

首先,您需要确保在服务器上正确安装了基础X11软件包:

rpm -qa | grep xorg-x11-xauth

如果没有,请安装所有软件包:

sudo yum install xorg-x11-xauth xterm

确保openssh服务器配置为转发x11连接:

edit file : vim /etc/ssh/sshd_config

X11Forwarding yes

注意:如果该行之前带有注释(#)或设置为no,请更新文件以匹配上述内容,然后重新启动ssh服务器守护程序(请注意此处-如果出错,则可能会将自己锁定在 服务器)

sudo /etc/init.d/sshd restart

现在,配置SSH应用程序以转发X11请求:

ssh -Y your_username@your_server.your_domain.com

Srijan Chaudhary answered 2019-11-06T09:33:50Z

1 votes

if [[ $DISPLAY ]]; then

fi

Serge Stroobandt answered 2019-11-06T09:34:09Z

0 votes

这是用于检查的PHP脚本。

$xsession = `pidof X`;

if (!$xsession) {

echo "There is no active X session, aborting..\n";

exit;

}

类似的命令也可以在shell脚本中使用。 就像pidof命令一样。

user3607430 answered 2019-11-06T09:34:42Z

0 votes

bash脚本解决方案:

if ! xset q &>/dev/null; then

echo "No X server at \$DISPLAY [$DISPLAY]" >&2

exit 1

fi

如果从另一个控制台(Ctrl + Alt + F?)或ssh登录,则不起作用。 对我来说,这个解决方案可以在我的Archlinux中使用:

#!/bin/sh

ps aux|grep -v grep|grep "/usr/lib/Xorg"

EXITSTATUS=$?

if [ $EXITSTATUS -eq 0 ]; then

echo "X server running"

exit 1

fi

您只能为Xorg或系统上的正确命令更改/ usr / lib / Xorg。

oml answered 2019-11-06T09:35:21Z

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: vnc-server-6.7是一个在Linux系统上运行的虚拟网络计算机(VNC)服务器软件。它支持任何64位的Linux操作系统版本。 VNC服务器是一种远程桌面控制软件,它允许用户通过网络连接到远程计算机并控制该计算机的桌面。vnc-server-6.7是VNC软件的一个特定版本,它在64位Linux系统中运行,并且非常灵活和可定制。 使用vnc-server-6.7,您可以在远程计算机上设置和配置VNC服务器,然后通过VNC客户端从本地计算机连接到该服务器。通过这种方式,您可以使用本地计算机上的键盘、鼠标和显示器来远程控制和操作远程计算机。 vnc-server-6.7具有很高的性能和稳定性,并且具有一些高级特性,例如数据压缩、加密传输和多个会话支持。它还提供了图形用户界面,以便用户可以方便地进行配置和管理。 总的来说,vnc-server-6.7是一款功能强大的虚拟网络计算机服务器软件,在64位Linux系统上提供便捷的远程桌面控制功能,并具有高性能和稳定性。对于那些需要远程管理和操作Linux服务器的用户来说,它是一个非常实用的工具。 ### 回答2: "vnc-server-6.7 linux-x64-any" 是一个用于在Linux操作系统上安装和配置远程访问服务器的软件。 VNC(Virtual Network Computing)是一种远程控制和远程桌面协议,可以让用户通过网络连接到远程计算机,并在本地计算机上访问和控制远程计算机的桌面环境。 vnc-server-6.7 linux-x64-any 是指在 Linux 64位操作系统上安装和配置VNC Server的特定版本。通过安装vnc-server-6.7 linux-x64-any,用户可以远程登录到Linux服务器,并在本地计算机上实时查看和操作服务器的桌面。 使用vnc-server-6.7 linux-x64-any,用户可以远程管理和控制Linux服务器,无需物理接触服务器。这对于远程团队协作、技术支持和远程教育非常有用。 安装和配置vnc-server-6.7 linux-x64-any可能需要一些Linux系统管理的知识和技能。用户需要先下载并安装软件包,然后进行配置,例如指定远程登录的端口和密码。 一旦配置完成,用户可以使用VNC Viewer等VNC客户端工具连接到远程服务器,输入正确的IP地址和端口号,并提供正确的登录凭证,即可远程访问和控制服务器的桌面环境。 总之,vnc-server-6.7 linux-x64-any 是一个用于远程访问和控制Linux服务器的软件,可以帮助用户方便地远程管理和操作Linux服务器的桌面环境。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值