我正在使用Lua腳本和ngnix來生成ISO文件。 Lua腳本解析請求,它應該將它傳遞給genisoimage
命令。Lua不會執行bash腳本
我已經試過:
local pack_cmd = "genisoimage -V" .. some_other_name
os.execute(pack_cmd)
命令沒有成功執行和返回代碼,我得到3328
。我 嘗試與absoulte路徑(/usr/bin/genisoimage
和/bin/genisoimage
),但 它不起作用。
我已經試過簡單的解決方法 - 執行genisoimage
命令bash腳本 內,在Lua腳本像這樣運行:
local pack_cmd = "bash /absoulte/path/script.sh " .. some_other_name
os.execute(pack_cmd)
仍然沒有工作並獲得相同的退出代碼。也試圖抓住什麼是錯的,但它看起來像命令genisoimage
永遠不會執行。
local pack_cmd = "bash /absoulte/path/script.sh " .. some_other_name .." >> error.log"
os.execute(pack_cmd)
帶把手的版本如果我執行pack_cmd
串手動一切工作正常不工作,以及
local handle = io.popen(pack_cmd)
local result = handle:read("*a")
handle:close()
。執行bash腳本也正在工作。
'strace'告訴你發生了什麼? –
...順便說一句,通過字符串連接代碼生成是非常糟糕的做法(可能導致注入漏洞)。請考慮使用顯式的argv數組。 –
@CharlesDuffy感謝您的快速響應!我發現我沒有權限將其作爲'www-data'用戶執行。感謝您的建議。 – sstevan