在此只简单提及如何如何使用SC命令将程序加入系统服务功能:
加入服务格式如下:
sc create ServiceName binPath= 路径 start= auto (等号后面的空格必须)
删除服务格式如下:
sc delete ServiceName
我们举个例子,将FlashFXP加入到系统服务中。(FlashFXP安装在D:\Program Files\FlashFXP文件夹)。
sc create FlashFXP binPath= D:\Program Files\FlashFXP\FlashFXP.exe start= auto
我们要删除FlashFXP这个服务的话,只需要执行一下命令就可以了。
sc delete FlashFXP
是不是很简单呢,至于怎么创建、保存、修改批处理文件,我相信大家都会了。
Linux启动服务的是依靠 /etc/init.d/ 下的脚本启动的。这些都是普通的 shell 脚本,系统在调用的时候,如果是启动服务,则传入 start 作为参数;stop 表示停止;restart 表示重启。因此你可以写一个脚本,比如简单的如这样:
#!/bin/sh
ARG=$1
case $ARG in
start):
nohup /path/to/your/program &
;;
stop):
pkill program
;;
restart):
pkill program
nohup /path/to/your/program &
;;
esac
把这个脚本放在 /etc/init.d 里面,譬如 /etc/init.d/your_prog
然后加入相应运行级别的链接:在 5 级启动则
ln -s /etc/init.d/your_prog /etc/rc5.d/S100your_prog
ln -s /etc/init.d/your_prog /etc/rc0.d/K100your_prog
这里两个数字都可以用对应目录里最大的数字,因为没有别的服务依赖你的服务。
这样表示,当系统进入 init level 5 的时候启动你的程序,进入 init level 0 的时候停止你的程序。
nohup是告诉系统忽略用户退出系统 让进程运行直到进程结束为止
比如我在远程打开ssh终端运行程序./server 如果不用nohup当我关闭ssh终端时 ./server进程将会中止
使用nohup ./server & 可以在用户退出终端时 进程能继续执行
转载于:https://blog.51cto.com/eric02/1672768