今日在一台Fedora Server上安装了tomcat 8.0.15。使用脚本设置其自启动。脚本如下:
#!/bin/bash
# description: Tomcat Start Stop Restart
# processname: tomcat
# chkconfig: 234 20 80
JAVA_HOME=/usr/java/jdk1.8.0_25
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
CATALINA_HOME=/usr/java/apache-tomcat-8.0.15
case $1 in
start)
sh $CATALINA_HOME/bin/startup.sh
;;
stop)
sh $CATALINA_HOME/bin/shutdown.sh
;;
restart)
sh $CATALINA_HOME/bin/shutdown.sh
sh $CATALINA_HOME/bin/startup.sh
;;
esac
exit 0
但是鉴于使用root用户启动会造成不必要的安全隐患,故而新建了一个用户fsrvweb用于管理tomcat服务器。
groupadd fsrvweb
useradd -g fsrvweb -s /bin/bash fsrvweb
运行脚本改写如下:
#!/bin/bash
# description: Tomcat Start Stop Restart
# processname: tomcat
# chkconfig: 234 20 80
JAVA_HOME=/usr/java/jdk1.8.0_25
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
CATALINA_HOME=/usr/java/apache-tomcat-8.0.15
case $1 in
start)
/bin/su fsrvweb -s $CATALINA_HOME/bin/startup.sh
;;
stop)
/bin/su fsrvweb -s $CATALINA_HOME/bin/shutdown.sh
;;
restart)
/bin/su fsrvweb -s $CATALINA_HOME/bin/shutdown.sh
/bin/su fsrvweb -s $CATALINA_HOME/bin/startup.sh
;;
esac
exit 0
可是该用户除了管理各种服务之外并不需要进行登录操作,所以将用户的shell改为nologin:
usermod fsrvweb -s /sbin/nologin
echo “/sbin/nologin” >> /etc/shells
但是这样无法执行上面的脚本,因为nologin不具有执行命令功能,所以将以上代码改为:
#!/bin/bash
# description: Tomcat Start Stop Restart
# processname: tomcat
# chkconfig: 234 20 80
JAVA_HOME=/usr/java/jdk1.8.0_25
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
CATALINA_HOME=/usr/java/apache-tomcat-8.0.15
case $1 in
start)
/bin/su fsrvweb -s /bin/bash $CATALINA_HOME/bin/startup.sh
;;
stop)
/bin/su fsrvweb -s /bin/bash $CATALINA_HOME/bin/shutdown.sh
;;
restart)
/bin/su fsrvweb -s /bin/bash $CATALINA_HOME/bin/shutdown.sh
/bin/su fsrvweb -s /bin/bash $CATALINA_HOME/bin/startup.sh
;;
esac
exit 0
这样就可以顺利执行该脚本了。
该方法也可用于其他一些类似服务的设置。
参考:
http://davidghedini.com/pg/entry/install_tomcat_8_on_centos
man su
来源:http://www.omgdba.com/nologin-user-execute-command-by-su-on-linux.html
分类目录
- arch/management (17)
- computer (38)
- java/j2ee (304)
- lnmpa (237)
- mac/iphone/ipad/android (11)
- mysql/oracle/postgresql (126)
- os/software (74)
- other (518)
- python (6)
- redis/memcached/mongo (31)
- sitebuild (143)
随便看看
标签云
程序员 创业 人生箴言 eclipse 快捷键 术语 索引 unix命令 vim wordpress java学习笔记 环境变量 oracle内置函数 index 人生 数据类型 nohup tuxedo mysql学习笔记 MS-DOS命令 servlet spring 职场进阶 职业进阶 服务器选购 服务器选型 apache JPA MongoDB 注解 tomcat 子女教育 jquery maven JVM aix命令 网络营销 java异常 seo 人生规划 关键字 css 网络推广 struts 系统优化 成长 frame iframe bluehost jdbc select 我的信仰 oracle函数 cookie HashMap 站长工具 乱码 ArrayList secureCRT jsp session tail find halt 事务 oracle单记录函数 算法 URL window table javascript操作表单元素 String 字符串处理 健康 http 域名 情感 more google A记录 域名解析 netstat 弹出对话框 弹出窗口 框架集 框架 excel 字符串 javascript函数 showModalDialog nginx number 数组 sql frameset 开源程序 java数组 软件 oracle服务友情链接
收藏链接