Linux下如何设置自己的程序随机启动

来源:互联网 发布:在js中引入html页面 编辑:程序博客网 时间:2024/06/04 19:25

这里以redis为例,redis需要自己编译安装

make MALLOC=libc

之后进入src后,启动服务

./redis-server

可以看到如果我们启动redis服务的话,每次都要进入到安装目录,这样是不是很繁琐,所以我们将redis做成一个服务,我们直接启动。

首先将utils/redis_init_script文件复制到/etc/init.d下,同时易名为redis。执行命令

cp/usr/local/redis/utils/redis_init_script  /etc/rc.d/init.d/redis

然后在执行命令,

vi/etc/rc.d/init.d/redis,

并在文档第二行添加

# chkconfig: 2345 80 90

如果/usr/local/redis/bin中没有redis-server和redis-cli文件的话,我们要在我们的安装目录下复制一个过来。否则服务启动时找不到redis-server。

并且在第三个$EXEC $CONF 后边加一个&,表示让redis作为后台服务启动,否则该服务会独占输入屏。

一个完整的

[hadoop@redis init.d]$ cat redis #!/bin/sh## chkconfig: 2345 80 90# Simple Redis init.d script conceived to work on Linux systems# as it does use of the /proc filesystem.REDISPORT=6379EXEC=/usr/local/redis/bin/redis-serverCLIEXEC=/usr/local/redis/bin/redis-cliPIDFILE=/var/run/redis_${REDISPORT}.pidCONF="/etc/redis/${REDISPORT}.conf"case "$1" in    start)        if [ -f $PIDFILE ]        then                echo "$PIDFILE exists, process is already running or crashed"        else                echo "Starting Redis server..."                $EXEC $CONF &        fi        ;;    stop)        if [ ! -f $PIDFILE ]        then                echo "$PIDFILE does not exist, process is not running"        else                PID=$(cat $PIDFILE)                echo "Stopping ..."                $CLIEXEC -p $REDISPORT shutdown                while [ -x /proc/${PID} ]                do                    echo "Waiting for Redis to shutdown ..."                    sleep 1                done                echo "Redis stopped"        fi        ;;    *)        echo "Please use start or stop as first argument"        ;;esac

可以看到在/etc/init.d/redis文件中有这么一行:CONF=”/etc/redis/${REDISPORT}.conf”。于是将redis配置文件拷贝到/etc/redis/下 。

mkdir /etc/redis    cp /usr/local/redis/redis.conf   /etc/redis/6379.conf

完成上面的操作之后,即可注册服务:

chkconfig --add redis

然后启动redis服务

service redis start

这样我们就将redis服务注册好了,
但是如果你测试一下

service redis stop

你会发现他提示/var/run/redis_6379.pid does not exist, process is not running (如果正常关闭则忽略) 这说明在run下没有这个文件,我们进入到/var/run下发先真的没有这个文件,但是有redis.pid文件。

我们我们要将/etc/rc.d/init.d/redis 文件中的redis_${REDISPORT}.pid修改为redis.pid。

这样我们重启服务后,在用该命令关闭就可以了。到这里我们的redis服务就安装好了,并做好了一个服务。

最后,我们将其添加到开机启动

sudo chkconfig redis on
原创粉丝点击