たとえば、シェルスクリプトでaugtoolを使用したいとします。
#!/bin/bash
augtool <<-EOF
print /augeas/load
EOF
ただし、このスクリプトを実行すると、top cmdを介して出力がなく、CPU使用率が100%の状態で無期限に実行されます。
以下を使用してコマンドを正常に実行できます。
$augtool
$print /augeas/load
/augeas/load/Webmin/excl[4] = "/*.dpkg-bak"
/augeas/load/Webmin/excl[5] = "/*.dpkg-new"
/augeas/load/Webmin/excl[6] = "/*.dpkg-old"
/augeas/load/Webmin/excl[7] = "/*.rpmsave"
/augeas/load/Webmin/excl[8] = "/*.rpmnew"
/augeas/load/Webmin/excl[9] = "/*~"
... lots of output...
augtool> quit
Ubuntu 12.04.2を使用しており、augtoolのバージョンは0.10.0です。
私の質問は:シェルスクリプトでaugtoolを使用する方法は?
[編集する]
straceコマンドを実行しましたが、次のエラーが発生しました。
lstat64("/augeas/load/", 0xbfc637d8) = -1 ENOENT (No such file or directory)
その後、繰り返して次のように表示します。
write(2, "\7", 1) = 1
rt_sigprocmask(SIG_BLOCK, [INT], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
read(0, "", 1) = 0
ただし、このスクリプトをrootとして実行すると正常に実行されます。
答え1
@Flupのように問題を再現することはできません。
augtool
また、実際にこれを通訳者として使用できます。
#!/usr/bin/augtool -f
print /augeas/load
スクリプトの最後で明示的に呼び出さずに変更するには、-s
()フラグと組み合わせてください。--autosave
save
答え2
augtoolコマンドを明示的に終了するとどうなりますか?
#!/bin/bash
augtool <<-EOF
print /augeas/load
quit
EOF