linux 设置服务自启动

1、服务自启动,就是在linux系统启动的时候,系统会启动自己需要的服务,linux系统启动默认启动/etc/rc.d/init.d 目录下的服务,所以在此目录下添加服务文件如:tomcatd,内容如下:

 1 #!/bin/bash
 2 #
 3 # tomcat 
 4 #
 5 # chkconfig: 
 6 # description:  Start up the Tomcat servlet engine.
 7 
 8 # Source function library.
 9 . /etc/init.d/functions
10 
11 
12 RETVAL=$?
13 CATALINA_HOME="/ROOT/shell/tomcat"
14 15 case "$1" in
16  start)
17         if [ -f $CATALINA_HOME/xxxx/tomcat.sh ];
18           then
19             echo $"Starting Tomcat"
20           $CATALINA_HOME/xxxx/tomcat.sh start
21         fi
22         ;;
23  stop)
24         if [ -f $CATALINA_HOME/xxxxx/tomcat.sh ];
25           then
26             echo $"Stopping Tomcat"
27             sh $CATALINA_HOME/xxxx/tomcat.sh stop
28         fi
29         ;;
30  *)
31         echo $"Usage: $0 {start|stop}"
32         exit 1
33         ;;
34 esac
35 
36 exit $RETVAL

2、添加软连接,/etc/rc.d下变有0~6七个rc* 目录,功能如下图:

 

 

1 sudo ln -s /etc/init.d/tomcatd /etc/rc3.d/S71tomcat

3、然后尝试启动 service tomcatd start,此时可能会遇到错误: 

1 Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
2 At least one of these environment variable is needed to run this program

4、重新编辑第一步添加的tomcatd文件,在14行处添加代码(自己服务器的jdk路径)

1 export JAVA_HOME=/ROOT/server/jdk

5、再次启动 service tomcatd start,如果遇到如下错误

1 nohup: cannot run command `java’: No such file or directory

解决方法:在tomcatd文件中加上 . /etc/profile

6、然后重新启动OK,然后你会发现服务的启动用户默认是root,继续解决问题:

1 修改这段代码,用tomcat这个用户启动 
2 $CATALINA_HOME/xxxx/tomcat.sh start
3 TO
4 /bin/su tomcat $CATALINA_HOME/xxxx/tomcat.sh start

7、继续启动服务如果发现需要输入密码的话,有两种解决方案,

第一种:

1 添加如下代码到 /etc/pam.d/su  pam_rootok.so 行的下边添加如下代码:
3 auth       sufficient pam_exec.so quiet /path/to/script
script的内容如下:
1 #!/bin/bash
2 if [ "$PAM_TYPE" == "auth" ] && \
3 [ "$PAM_USER" == "tomcat" ] && \
4 [ "$PAM_RUSER" == "root" ]; then
5   exit 0
6 else
7   exit 1
8 fi

 第二种:

1 直接在 /etc/pam.d/su 文件中的 pam_rootok.so 行下边添加如下代码:
2 
3 auth       [success=ignore default=1] pam_succeed_if.so user = tomcat4 auth       sufficient   pam_succeed_if.so use_uid user = root

7、参考资料:

http://raibledesigns.com/tomcat/boot-howto.html

http://unix.stackexchange.com/questions/113754/allow-user1-to-su-user2-without-password

posted @ 2016-05-10 21:20  琪阿哥  阅读(491)  评论(0编辑  收藏  举报