怎样停止或重新启动openwrt中的一个服务?



  • 在NEO装了一个mosquitto服务,我想在更改一些配置后重新启动这个服务,但是在openwrt中没有service这个命令(也没有chkconfig这个命令),不知道该如何重新启动这个服务?
    直接使用kill命令来结束服务,然后再运行这个服务?


  • administrators

    @henly 运行方式是普通进程,还是daemon?



  • @mango ,谢谢你的答复。我想用守护进程(daemon)来运行。

    今天在研究openwrt启动时候怎样运行启动各种服务,它的原理大概如下:

    1. 每个服务都有一个启动脚本,这些脚本都放在/etc/init.d下。
    2. 每个脚本都要按openwrt规定的接口来编写,例如脚本里面的start方法里面就是服务的启动执行脚本,stop方法里面就是服务停止脚本。其实start方法和stop方法在继承/etc/rc.common 这个脚本就定义好了,每个服务脚本需要重写它。
    3. 把这个脚本注册到系统中,执行/etc/init.d/xxxxxx(你的服务脚本) enable

    通过这些步骤后,系统在启动时候自动执行这些服务。有了这些定义好的服务命令,我想重新启动mosquitto服务就很简单了。直接执行:/etc/init.d/mosquitto restart,它是以守护进程来运行。


  • administrators

    对,这是比较正统的方法,做好start和stop接口shell函数就行了。