我想要獲得一個ssh觸發器,它將使用git存儲庫進行某些操作。當我在後臺運行代碼時,它可以工作。添加nohup
不起作用。相關位只是說:git checkout在背景下不工作
git checkout master
Already on 'master'
但是,當我終於背景,它停止與合作:
git checkout master
fatal: unable to write new index file
(輸出被定向到一個日誌文件,也就是說在前臺做的好;日誌文件包含正在執行的命令)。
我在腳本的開頭打印了id
和umask
,它們看起來一樣。在這兩種情況下,它都通過ssh觸發器執行,唯一的區別是命令後的&
。
腳本是這樣的:
#!/bin/sh
export GIT_DIR=/somewhere
nohup git-using-script.sh </dev/null >/dev/null 2>&1 &
sleep 1
沒有睡1,nohup的不啓動(在重定向發生的nohup的開始之前,SSH管理的nohup之前退出創建一個新的會話和命令無論如何都終止)。但沒有&
一切正常,與腳本運行,但git產生的錯誤。
你是如何背景的過程?當前工作目錄或用戶是否可能更改? – bundacia
@bundacia:我用'&'和'nohup'結合後臺。而睡眠,因爲沒有它,ssh會在nohup更改會話之前斷開連接,並將流程退出。 –