在Linux中将脚本做成系统服务

  有一些情况下,我们需要将某些脚本作为系统服务来运行。比如,在我使用workerman框架开发php程序时,需要使用管理员权限来运行,而且需要开机自行启动程序提供服务。这个时候将启动程序写成服务就可以很方便使用了,而且在使用时也可以直接sudo service xxxx start,不需要手动敲出来复杂的文件路径。(在不使用小技巧的时候可能要这样做: sudo php /path/to/file start -d)生命苦短,多用些小技巧可能提高我们生命的效率,呵呵扯远了。我们直接来看如何自己写一个,并将之作为系统服务,且开机自动运行。

  首先,作为服务我们通常需要以下的功能:{start|stop|restart|status},接下来我就使用一段简单的bash脚本做一个演示:

  1.编辑我们的脚本文件

  vim myservice

  脚本内容:

  

#!/bin/bash
#
#description: a demo
#chkconfig:2345 88 77
lockfile=/var/lock/subsys/myservice
touch $lockfile
# start 
start(){
        if [ -e $lockfile ] ;then
                echo "Service is already running....."
                return 5
        else
                touch $lockfile
                echo "Service start ..."
                return 0
        fi
}
#stop
stop(){
        if [ -e $lockfile ] ; then
                rm -f $lockfile
                echo "Service is stoped "
                return 0
        else
                echo "Service is not run "
                return 5
        fi

}
#restart 
restart(){
        stop
        start
}
usage(){
        echo "Usage:{start|stop|restart|status}"
}
status(){
        if [ -e $lockfile ];then
                echo "Service is running .."
                return 0
        else
                echo "Service is stop "
                return 0
        fi
}
case $1 in
start)
        start
        ;;
stop)
        stop
        ;;
restart)
        restart
        ;;
status)
        status
        ;;
*)
        usage
        exit 7
        ;;
esac

  

  之后,我们将脚本复制至/etc/init.d文件夹中

  #cp myservice /etc/init.d

  将我们的myservice.sh添加至chkconfig

  #chkcofig --add myservice

  这样,在2345的运行级别下,myservice就会开机自动开启服务了,我们在任意目录下面都可以直接运行脚本 service myservice start

转载于:https://www.cnblogs.com/jixingke/p/6050570.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以按照以下步骤在 Linux 环境中将 Logstash 安装成服务: 1. 下载并安装 Logstash。 2. 创建 Logstash 的 init 脚本,并将其保存到 /etc/init.d/ 目录下。 3. 将 init 脚本授权为可执行文件。 4. 将 Logstash 加入系统启动项。 下面是详细的步骤: 1. 下载并安装 Logstash。 可以从官方网站下载 Logstash 的安装包,并通过以下命令进行安装: ``` sudo rpm -ivh logstash-<version>.rpm ``` 2. 创建 Logstash 的 init 脚本,并将其保存到 /etc/init.d/ 目录下。 在 /etc/init.d/ 目录下创建一个名为 logstash 的文件,并将以下内容复制到文件中: ``` #!/bin/sh # # Logstash # # chkconfig: - 85 15 # description: Logstash start/stop/init.d script # # Source function library. . /etc/rc.d/init.d/functions # Get config. if [ -f /etc/sysconfig/logstash ]; then . /etc/sysconfig/logstash fi # Check that networking is up. if [ "$NETWORKING" = "no" ] then exit 0 fi RETVAL=0 start() { echo -n "Starting Logstash: " nohup /opt/logstash/bin/logstash -f /etc/logstash/conf.d/ 2>&1 > /tmp/logstash.log & RETVAL=$? if [ $RETVAL -eq 0 ]; then echo_success echo else echo_failure echo fi return $RETVAL } stop() { echo -n "Stopping Logstash: " killproc logstash RETVAL=$? if [ $RETVAL -eq 0 ]; then echo_success echo else echo_failure echo fi return $RETVAL } restart() { stop start } case "$1" in start) start ;; stop) stop ;; restart) restart ;; *) echo $"Usage: $0 {start|stop|restart}" RETVAL=1 ;; esac exit $RETVAL ``` 3. 将 init 脚本授权为可执行文件。 运行以下命令,将 init 脚本授权为可执行文件: ``` sudo chmod +x /etc/init.d/logstash ``` 4. 将 Logstash 加入系统启动项。 运行以下命令,将 Logstash 加入系统启动项: ``` sudo chkconfig --add logstash sudo chkconfig logstash on ``` 现在,Logstash 就已经被安装成服务了。可以使用以下命令启动、停止和重启 Logstash: ``` sudo service logstash start sudo service logstash stop sudo service logstash restart ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值