SlimerJ'leri bir sunucuda başsız bir tarayıcı olarak kullanıyorum. Sunucunun xserver'ı olmadığından çalıştırmak için xvfb kullandım.
Komut böyle bir şeye gider:
xvfb-run --server-args="-screen 0, 1024x768x24" slimerjs-0.10.0pre/slimerjs \
script.js --debug=yes "/tmp/file986Iww" "/tmp/file28bAEv" "pdf"
Bu dosya script.js
giriş için bir dosya adı, çıktı için bir dosya adı ve daha ince yazıcı özelliğini kullanarak dönüştürülecek bir format alır.
Benim sorunum root olarak çalışırken, iyi çalışıyor olmasıdır. Ama apache'nin işi yapmasına izin verdiğimde başarısız oluyor ve takılıyor.
Apache www-data
kullanıcı ve grup altında çalışır . Bu önceki komutun çıktısıdır:
slimerjs-0.10.0pre/xulrunner/xulrunner -app slimerjs-0.10.0pre/application.ini --profile /tmp/slimerjs.gRAJJar6 -no-remote script.js --debug=yes /tmp/file986Iww /tmp/file28bAEv pdf
Xlib: extension "RANDR" missing on display ":99".
JavaScript warning: resource://slimerjs/slUtils.jsm, line 154: JavaScript 1.7's let blocks are deprecated
JavaScript error: jar:file:///var/www/project/slimerjs-0.10.0pre/xulrunner/omni.ja!/components/XULStore.js, line 66: NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIProperties.get]
** stuck forever here **
66 numaralı hat XULStore.js
:
65. Services.obs.addObserver(this, "profile-before-change", true);
66. this._storeFile = Services.dirsvc.get("ProfD", Ci.nsIFile);
67. this._storeFile.append(STOREDB_FILENAME);
Strace’de neyin yanlış olduğunu görmeye çalışmak bana bir tür döngüye takıldığını gösteriyor.
Bu kullanıcının bu ikiliyi çalıştırmamasının sebeplerini göremiyorum.
Hangi iznin eksik olduğunu veya xulrunner'da neyin yanlış gittiğini nasıl hata ayıklayabilirim?
Strace'i göndermedim çünkü oldukça ağır, ilgili bilgiler içerdiğini düşünüyorsanız sormaktan çekinmeyin.
$ uname -a
Linux *host* 3.10-0.bpo.2-amd64 #1 SMP Debian 3.10.5-1~bpo70+1 (2013-08-11) x86_64 GNU/Linux
strace
vegrep EACC
dosyaların nerelerde sorun çıkardığını gördüm. Profil gerçekten dahil oldu. Çalışması için birçok dosya oluşturmak ve chmod yapmak zorunda kaldım.