我使用 Geany IDE 进行编程,但它无法可靠地重新加载我之前打开的文件,例如在断电后。我发现 Geany 有一个命令行功能,可以返回编辑器中所有打开文件的列表,所以我希望可以快速编写一个 cron 命令,每隔一小时左右自动保存该列表。
我的 crontab 中目前有这一行:
0 * * * * ~/bin/save_geany_files
脚本仅包含一行:
geany --list-documents > ~/geany_files.txt
这不起作用。我注意到 Geany 的 --list-documents 功能必须由同一个用户调用(我认为),所以我尝试将“su - [myusername]”添加到脚本中,但显然 su 不能在 cron 作业中使用?所以,我不知道如何自动化。我愿意接受任何其他解决方案来解决我的问题,尽管 Geany 选项/插件似乎不可靠(这就是我首先尝试这个的原因)
答案1
通过像这样运行 crontab:
0 * * * * ~/bin/save_geany_files 2> /tmp/geanyerror.log
我在 /tmp/geanyerror.log 中发现此错误消息:
Geany: cannot open display
我通过在 .bashrc 中添加以下行解决了这个问题:
xhost local:arune > /dev/null
(其中 arune 是我的用户名)并将我的 crontab 更改为
0 * * * * export DISPLAY=:0.0 && ~/bin/save_geany_files 2> /tmp/geanyerror.log
我自己的 save_geany_files 脚本如下所示:
#!/bin/bash
cp /home/arune/geany/savenew.txt /home/arune/geany/saveold.txt
/usr/bin/geany --list-documents > /home/arune/geany/savenew.txt
额外存储一小时的“备份”。