我試圖運行在集羣中使用sqlite3的腳本(SGE)。SGE + sqlite3:錯誤:數據庫被鎖定
該腳本創建與lockfile鎖,填充數據庫,並釋放鎖。
$cat test.sh
#!/bin/sh
lockfile /commun/data/_tmp.idp448.lock
sqlite3 /commun/data/stats.sqlite "create table if not exists timeBeginDB(target text UNIQUE NOT NULL,inserted int);"
rm -f /commun/data/_tmp.idp448.lock
whoami
/commun/data /從所有節點都可見。 /commun/data/_tmp.idp448.lock是我創建的一個隨機名,我目前是唯一使用我們的新羣集的名稱。
沒有的qsub腳本工作沒有任何問題:
[lindenb]$ sh test.sh
lindenb #prints whoami, no error on stderr
時的qsub被調用:
$ qsub -cwd -S /bin/sh test.sh
Your job 673 ("test.sh") has been submitted
$ cat test.sh.o673
lindenb #prints 'whoami', so the lock have been created and deleted
$ cat test.sh.e673
Error: database is locked
這是一個sqlite3的錯誤。
你有什麼想法,什麼樣的建議,在上海黃金交易所方面,可能是問題的原因,行爲的這種差異?
謝謝 皮埃爾
UPDATE:
我超級用戶身份登錄集羣的節點上。簡單以下命令失敗: (/commun/data/stats2.sqlite不存在)
ssh [email protected]
[email protected]'s password:
sqlite3 /commun/data/stats2.sqlite 'create table if not exists timeBeginDB(target text UNIQUE NOT NULL,inserted int);'
Error: database is locked
它工作在〜根:
[[email protected] ~]# sqlite3 stats2.sqlite 'create table if not exists timeBeginDB(target text UNIQUE NOT NULL,inserted int);'
[[email protected] ~]#
錯誤是否發生在{for {1..10}中的i中;做test.sh&完成「? – choroba
@choroba,我已經運行了循環,stderr上沒有錯誤。 – Pierre