为了确保安全我们生产中习惯提供service服务部分操作和权限
eg:redis服务的执行
1. 给服务执行的权限
1.Shell代码
- touch /etc/init.d/redis-server
- chmod +x /etc/init.d/redis-server
2.编辑
/etc/init.d/redis-server
,键入如下内容:
Shell代码
- #!/bin/bash
- #
- # redis Startup script for redis processes
- #
- # author: snowolf
- #
- # processname: redis
- redis_path="/usr/local/bin/redis-server"
- redis_conf="/etc/redis/redis.conf"
- redis_pid="/var/run/redis.pid"
- # Source function library.
- . /etc/rc.d/init.d/functions
- [ -x $redis_path ] || exit 0
- RETVAL=0
- prog="redis"
- # Start daemons.
- start() {
- if [ -e $redis_pid -a ! -z $redis_pid ];then
- echo $prog" already running...."
- exit 1
- fi
- echo -n $"Starting $prog "
- # Single instance for all caches
- $redis_path $redis_conf
- RETVAL=$?
- [ $RETVAL -eq 0 ] && {
- touch /var/lock/subsys/$prog
- success $"$prog"
- }
- echo
- return $RETVAL
- }
- # Stop daemons.
- stop() {
- echo -n $"Stopping $prog "
- killproc -d 10 $redis_path
- echo
- [ $RETVAL = 0 ] && rm -f $redis_pid /var/lock/subsys/$prog
- RETVAL=$?
- return $RETVAL
- }
- # See how we were called.
- case "$1" in
- start)
- start
- ;;
- stop)
- stop
- ;;
- status)
- status $prog
- RETVAL=$?
- ;;
- restart)
- stop
- start
- ;;
- condrestart)
- if test "x`pidof redis`" != x; then
- stop
- start
- fi
- ;;
- *)
- echo $"Usage: $0 {start|stop|status|restart|condrestart}"
- exit 1
- esac
- exit $RETVAL
测试:
引用
# service redis-server restart
Stopping redis [失败]
Starting redis [确定]
# service redis-server status
redis (pid 14965) 正在运行...