在Ubuntu

时间:2015-12-11 09:15:21

标签: ubuntu service daemon

我正在尝试为linux服务创建一个守护进程。

实际上,我可以从我的主目录启动服务,如下所示:

cd /home/admin/myservice/build && ./myservice file.dat

请注意,我需要将file.dat添加为“参数”,否则服务无法启动。

嗯,这就是我的所作所为。 首先,我创建了一个简单的脚本,以便在 / usr / bin 中启动该服务。文件名是myservice.sh:

#!/bin/sh
cd /home/admin/myservice/build && ./myservice file.dat

然后,我给了这个脚本的exec权限:

chmod +x /usr/bin/myservice.sh

然后,我在名为myservice的 /etc/init.d 中创建了一个新脚本。我使用了骨架:

sudo -s
cp /etc/init.d/skeleton /etc/init.d/myservice

内容为:

PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="Myservice Daemon"
NAME=myservice
DAEMON=/usr/bin/myservice.sh
DAEMON_ARGS="--options args"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

然后,我给了脚本的exec权限:

chmod +x /etc/init.d/myservice

我跑了这个来激活守护进程:

update-rc.d myservice defaults

现在我可以像这样启动守护进程:

/etc/init.d/myservice start --quiet --background

但它像以前一样工作: - 它不是在后台启动的(我不能使用相同的shell会话) - 每次我关闭它都会破坏它 - 以及如何让它在系统启动时运行?

我错过了什么?

编辑:刚添加“&”在行尾:

 cd /home/admin/myservice/build && ./myservice file.dat &

现在它按预期工作。 我可以重新启动机器并运行服务!

0 个答案:

没有答案