我想要获得一个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更改会话之前断开连接,并将流程退出。 –