进一步阅读

进一步阅读

Debian 延伸用户在这里。我想要每十分钟屏幕闪烁一次。在尝试了几种替代方案(包括xrefresh)之后,我决定使用sct.它可以在 shell 中工作,但不能与cron.

这有效:

sct 2000

剧本:(命名colrefr

#!/bin/bash
PATH=/usr/bin
sct 2000; sleep 3; sct

克朗:pgrep cron显示cron正在运行)

* * * * * /home/user/folder/colrefr

(每分钟一次,直到调试成功)

我已经缓解了常见的问题 - 最后一个命令后的换行符、PATH脚本中的设置、文件名中没有点等等。

$ which sct
/usr/bin/sct

$ which sleep
/bin/sleep/

-

$ sudo tail -f /var/log/syslog
Oct 16 16:00:01 user CRON[29060]: (user) CMD (/home/user/folder/colrefr )
Oct 16 16:00:01 user kernel: [229206.201351] sct[29062]: segfault at e0 ip 000055dca79aa8cd sp 00007ffd9dfc6220 error 4 in sct[55dca79aa000+2000]
Oct 16 16:00:01 user kernel: [229206.201366] Code: 17 20 00 66 90 ff 25 4a 17 20 00 66 90 41 57 41 56 41 55 41 54 55 53 89 fb 31 ff 48 89 f5 48 83 ec 38 e8 ae ff ff ff 49 89 c4 <48> 63 80 e0 00 00 00 4c 89 e7 48 c1 e0 07 49 03 84 24 e8 00 00 00 
Oct 16 16:00:01 user kernel: [229206.209280] sct[29064]: segfault at e0 ip 000055dcdd3268cd sp 00007ffdf60c9e40 error 4 in sct[55dcdd326000+2000]
Oct 16 16:00:01 user kernel: [229206.209295] Code: 17 20 00 66 90 ff 25 4a 17 20 00 66 90 41 57 41 56 41 55 41 54 55 53 89 fb 31 ff 48 89 f5 48 83 ec 38 e8 ae ff ff ff 49 89 c4 <48> 63 80 e0 00 00 00 4c 89 e7 48 c1 e0 07 49 03 84 24 e8 00 00 00 

我还有另外三个cronjobs,它们都可以工作。

它在 shell 中运行顺利。

答案1

这是两件事的结合:

  1. 您还没有告诉程序您的 X 服务器在哪里。
  2. M. Unangst 的程序根本不进行错误检查和处理。

该程序需要继承一个DISPLAY在 crontab 或包装脚本中指定的环境变量,以告诉它您要调整的 X 服务器显示在哪里。如果没有告知的话,您看到的分段错误就是其故障模式。

您可能想将此报告为错误。

DISPLAY您所使用的 shell 环境中碰巧有一个变量,可能是因为您使用的是 GUI 终端仿真器。如果您在非 GUI 环境中登录,例如内核/用户虚拟终端、真实终端或没有 X11 转发的 SSH 会话,那么当您以交互方式调用该程序时,您也会看到相同的行为。

%显示= sct
zsh:分段错误 DISPLAY= sct
%

进一步阅读

相关内容