私はorg-modeを使用しています。私の議題(example of an agenda)をテキストファイルにエクスポートして、conkyで表示できるようにしています。私はそうのようにこれを変更したコマンドラインからのemacsの実行とロックされたファイルの処理
emacs -batch -l ~/.emacs -eval '(org-batch-agenda "t")' | lpr
:
emacs -batch -l ~/.emacs -eval '(org-batch-agenda "e")' \
> ~/org/aux/agenda-export.txt
私は5分ごとに実行するようにcronジョブとしてこのセットを持っているorg-mode manualはこれを行うには、このコマンドラインの例を提供しています。私は実際にemacsを開いていない限り素晴らしい作品です。その後、ファイルagenda-export.txt
が空であることがわかりました。 cronを経由coammandライン対から手動でこれを実行するには、私は(私が開いているファイルに応じて、または類似の)このエラーが出る:
...~/org/file.org locked by jwhendy (pid 10935): (s, q, p, ?)?
私はスクリプトを書くつもりだったが、おそらくagenda-export-test.txt
にエクスポートし、その後、おそらく、空のファイルや行がないか確認してください(wc -l == 0
?)。 trueの場合は、既存のファイルをそのままにしてagenda-export-test.txt
を削除します。そうでない場合は、agenda-export-test.txt
をagenda-export.txt
に移動します。
しかし、私はこのようなスクリプトを実行しようとすると、ロックを盗み出すか、続行するか、終了するかについて、同じemacsの問い合わせを受けています。 org-agendaがファイルに対して何もしないので、何も悪影響を及ぼさないと思うので、私は進歩しても問題ありません...しかし、私はemacsに "強制"または "続行"する方法を知らない問題が発生した場合。私は非対話的なものが必要です。
- をemacsのに--forceオプションまたは類似を渡すことが
- が見一時停止に進行させるために、エクスポートtmpファイルは、任意の行を持っている場合:
ので、要約し、私の考えは、試してみましたそして
- は「読み取り専用モード」で実行するようにEmacsに伝え、それに応じて対処する(私はそれが存在するとは思わない)
主な問題は、cronをして、私が言うことがないんだということです何をすべきかを処理しますエクスポートされた結果として空のファイルを作成するだけです。このロックされたファイルビジネスを、cronのように応答できない「ブラインド」プロセスで処理するにはどうすればよいですか?
私はメーリングリストにもうまくいっていないのですか? [1]私はここに誰かがアイデアを持っているのだろうかと思った。
[1] http://www.mail-archive.com/[email protected]/msg45056.html
空のファイルをテストするために 'wc -l 'を使用する無用さについての接線的な発言。 'man test'(具体的には' test -s')または空でない行などを探す場合は 'grep'でしょう。 – tripleee
@トライプルー:ありがとう。私は想像力のどんなストレッチでもバッシュエキスパートではありません。ヒントをありがとう! – Hendy