在控制台上运行 X

在控制台上运行 X
Fedora release 20 (Heisenbug)

 Linux 3.19.8-100.fc20.x86_64 #1 SMP Tue May 12 17:08:50 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

我下载了一个二进制文件并在 中运行它terminal。该二进制文件是 x86_64 的 xflux。它可以减少夜间的蓝光。

但是,当我运行二进制文件时,我收到此消息This will only work if you're running X on console

我所做的只是提取 tgz 并运行二进制文件。一切似乎都运行正常。

Welcome to xflux (f.lux for X)
This will only work if you're running X on console.

Found 1 screen.
Your location (lat, long) is 13.8, 100.6

Your night-time color temperature is 3400
Going to background: 'kill 9662' to turn off.

我只是对那条消息感到好奇。

非常感谢您的建议,

答案1

我找不到源代码,但我确实对其进行了 strace 处理。从 strace 中可以清楚地看出,该This will only work...消息只是在实际执行任何操作之前打印的标准消息stdout。以下是重要的 strace 输出:

write(1, "\33[2J\33[0;0f\n--------\n", 20) = 20
write(1, "Welcome to xflux (f.lux for X)\n", 31) = 31
write(1, "This will only work if you're ru"..., 52) = 52
write(1, "\n", 1)                       = 1
socket(PF_LOCAL, SOCK_STREAM|SOCK_CLOEXEC, 0) = 3
connect(3, {sa_family=AF_LOCAL, sun_path=@"/tmp/.X11-unix/X0"}, 20) = 0
getpeername(3, {sa_family=AF_LOCAL, sun_path=@"/tmp/.X11-unix/X0"}, [20]) = 0
uname({sysname="Linux", nodename="mingus", ...}) = 0
access("/run/user/1000/gdm/Xauthority", R_OK) = 0

您可以看到,在尝试访问 X11 套接字之前会打印该消息。另一个好的迹象是,如果您在 X 会话之外运行它;您将看到完全相同的消息,后面跟着:

Couldn't open display (null)

答案2

我认为 f.lux 指的是您应该在 X(图形)桌面之前启动 f.lux。

不确定,但也许 x 需要是你的 shell 的一个子进程,比如 flux,而不是来自在 X 中打开的 shell 解释器的 flux

相关内容