ISOファイルを生成するためにngnixでLuaスクリプトを使用しています。 Luaスクリプトは要求を解析しており、genisoimage
コマンドに渡す必要があります。Luaはbashスクリプトを実行しません
local pack_cmd = "genisoimage -V" .. some_other_name
os.execute(pack_cmd)
コマンドが正常に実行されず、リターンコードとして、私は3328
を得る:
私が試してみました。私は アブールテ経路(/usr/bin/genisoimage
と/bin/genisoimage
)で試しましたが、 は機能しません。
私は簡単な回避策を試してみた - このようにそれを実行するbashスクリプト 内genisoimage
のコマンドを実行し、Luaのスクリプトで:
local pack_cmd = "bash /absoulte/path/script.sh " .. some_other_name
os.execute(pack_cmd)
をまだ作業と同じ終了コードを取得していません。また何が間違っているかをキャッチしようとしましたが、好きなように見えますgenisoimage
コマンドは決して実行されません。私は手動ですべてがOKに動作pack_cmd
文字列を実行した場合、ハンドルと
local pack_cmd = "bash /absoulte/path/script.sh " .. some_other_name .." >> error.log"
os.execute(pack_cmd)
バージョンは、同様に
local handle = io.popen(pack_cmd)
local result = handle:read("*a")
handle:close()
機能していません。 bashスクリプトの実行も機能しています。
'strace'があなたに起こっていることを教えてください。 –
... btw、文字列連結によるコード生成は非常に悪い習慣です(注入脆弱性につながる可能性があります)。代わりに明示的なargv配列を使用することを検討してください。 –
@CharlesDuffyこのような高速応答に感謝します!私はこれを 'www-data'ユーザとして実行する権限がないことを知りました。提案もありがとう。 – sstevan