我已经到处阅读关于如何做到这一点的资料,并且我知道如何做到这一点,但由于某种原因,我无法让它正常工作。
我只是想在重新启动或启动时运行一个 jar 文件,该 jar 文件是 teamspeak3 的服务器机器人,它基本上需要在 teamspeak 启动后运行。
我想在启动时运行的代码是
screen -d -m -S ts3bot java -jar JTS3ServerMod.jar
.conf 的文件名和位置:
$ cat /etc/init/serverbot.conf
description "serverbot"
author "Peter"
start on runlevel [3]
stop on shutdown
expect fork
script
cd /home/teamspeak/sbot
screen -d -m -S ts3bot java -jar JTS3ServerMod.jar >/var/log/sbot.log 2>&1
emit serverbot_running
end script
当我以 root 身份运行代码时,我得到的结果如下
$ start serverbot
start: Job failed to start
然后我进入日志@/var/log/upstart
我看到了这个
/proc/self/fd/9: 2: cd: can't cd to /home/teamspeak/sbot
如果我更改cd
为,chdir
我仍然会得到相同的结果。该文件夹/home/teamspeak/sbot
确实存在
有人知道是什么原因造成的吗?所有权问题?当 upstart 运行 时.conf
,它在哪个用户下运行?我不明白这里发生了什么。
root@fister4:/# namei -mo /home/teamspeak/sbot
f: /home/teamspeak/sbot
drwxr-xr-x root root /
drwxr-xr-x root root home
drwxr-xr-x teamspeak teamspeak teamspeak
drwxr-xr-- teamspeak teamspeak sbot
答案1
我变了
cd /home/teamspeak/sbot
到
cd /home/teamspeak/sbot/
并且它正确加载到目录中,没有错误