DAEMONTOOLS: http://cr.yp.to/daemontools.html
apt-get install daemontools-run
安装之后使用 nohup setsid svscanboot >/dev/null 2>&1
启动(只需要安装后第一次启动,以后会随着系统自动启动)
mkdir /etc/service/SERVICE_NAME
cat > /etc/service/SERVICE_NAME/run <<EOF
#!/bin/sh
cd /SOME/DIR/
exec setuidgid SOME_USER_IF_NEEDED COMMAND >> /PATH/TO/YOUR/LOGS 2>&1
#如果不需要切换用户,可以吧setuidgid去掉,默认是root运行
EOF
chmod +x /etc/service/SERVICE_NAME/run
#此时服务就已经自动运行了
- 启动服务:
svc -u /etc/service/SERVICE_NAME
-u = up 如果服务进程存在则什么都不干,否则通过运行相应的run
文件启动服务 - 停止服务:
svc -d /etc/service/SERVICE_NAME
-d = down 表示对服务进程发送SIGTERM信号 然后服务进程退出后不在重启。 - 重启服务:
svc -t /etc/service/SERVICE_NAME
-t = term 表示对服务进程发送SIGTERM信号,服务进程退出后将被自动重启。 - 强制重启服务:
svc -k /etc/service/SERVICE_NAME
-k = kill 表示对服务进程发送SIGKILL信号,同 kill -9,服务进程退出后将被自动重启。 - 禁用服务:
touch /etc/service/SERVICE_NAME/down
在服务目录下建立一个叫down
的空文件,即可禁用服务,服务禁用后进程退出将不会自动重启,但仍然可以手动启动 - 删除服务:
rm -rf /etc/service/SERVICE_NAME
停止服务进程后直接删除对应目录即可 - 检查服务状态:
svstat /etc/service/SERVICE_NAME
, 也可以使用svc /etc/service/*
显示所有服务状态