2016-04-08 20 views
0

ISO dosyası oluşturmak için ngnix ile Lua komut dosyası kullanıyorum. Lua komut dosyası ayrıştırma isteği ve genisoimage komutuna iletmelidir.Lua, bash betiği yürütmeyecek

local pack_cmd = "genisoimage -V" .. some_other_name 
os.execute(pack_cmd) 

Komut başarıyla yerine getirilmez ve dönüş kodu olarak ben 3328 olsun:

Birlikte denedim. Ben absoulte yolu (/usr/bin/genisoimage ve /bin/genisoimage) ile çalıştım ama çalışmıyor.

Basit geçici çözümü denedim - bu şekilde çalıştırmak bash komut iç genisoimage bulunan komutun Lua komut:

local pack_cmd = "bash /absoulte/path/script.sh " .. some_other_name 
os.execute(pack_cmd) 

Hala devam ediyor ve aynı çıkış kodu almıyor. Ayrıca neyin yanlış olduğunu anlamaya çalıştım ama genisoimage komutu hiç bir zaman yönetilmez. Ben elle herşey yolunda çalışır pack_cmd dize yürütmek durumunda kulplu

local pack_cmd = "bash /absoulte/path/script.sh " .. some_other_name .." >> error.log" 
os.execute(pack_cmd) 

Versiyon yanı

local handle = io.popen(pack_cmd) 
local result = handle:read("*a") 
handle:close() 

çalışmıyor. Bash betiği yürütmek de çalışıyor.

+0

Strace, size neler olduğunu anlatıyor? –

+0

... btw, dize birleştirme yoluyla kod oluşturma çok kötü bir uygulamadır (enjeksiyon güvenlik açıklarına yol açabilir). Bunun yerine lütfen açık bir argv dizisi kullanmayı düşünün. –

+0

@CharlesDuffy Bu kadar hızlı yanıt için teşekkürler! Bunu 'www-data' kullanıcısı olarak yürütmek için izinlerim olmadığını öğrendim. Önerileriniz için teşekkürler. – sstevan

cevap

0

Sorun, www-data kullanıcısı için izinlerle yapıldı.

+1

Çözüm, sitenize özgü olduğundan (soru ve yanıt çiftinin aynı soruna sahip başkalarına yardımcı olması gibi), sorunu ayrıntılı bir şekilde teşhis adımlarını kapsayacak şekilde genişletilemezse, soruyu silmeyi düşünebilirsiniz. başkalarına yardımcı olmak. –