題 在控制台上運行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。二進製文件是xflux for x86_64。它減少了夜間的藍光。

但是,當我運行二進製文件時,我收到此消息 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.

只是想知道那條消息。

非常感謝任何建議,


2
2018-01-15 04:17


起源


我更喜歡紅移, jonls.dk/redshift  它在回購。你應該試一試。 - MariusMatutiae
Redshift很好。但我仍然只是出於興趣而想要回答上述問題。 - ant2009


答案:


我找不到源代碼,但我確實對它進行了操作。從這個方面來看,很清楚 This will only work... message只是打印到的標準消息 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)

4
2018-01-18 22:14



我不想編輯你的答案,但我建議你添加為什麼需要X.它很可能通過X庫和驅動程序控制監視器設置(僅使用純控制台,這很難) - Manwe


我認為f.lux指的是你應該在X(圖形)桌面之前啟動f.lux。

不確定,但也許x需要是你的shell的子進程,如flux,而不是來自在X中打開的shell解釋器的通量


1
2018-01-15 07:32