当前位置:  编程技术>java/j2ee

java在linux系统下开机启动无法使用sudo命令的原因及解决办法

    来源: 互联网  发布时间:2014-10-27

    本文导语:  操作系统:centos 5.2场景描述:我们有一个WEB工程,客户要求使用普通用户(例如chb)运行,然后在页面上有个按钮,点击之后可以关机 实现方式:1. JAVA代码: 代码如下:        public static boolean shutDownForLinux() {        ...

操作系统:centos 5.2
场景描述:
我们有一个WEB工程,客户要求使用普通用户(例如chb)运行,然后在页面上有个按钮,点击之后可以关机

实现方式:
1. JAVA代码:

代码如下:

        public static boolean shutDownForLinux() {
                try {
                        Runtime.getRuntime().exec("sudo /sbin/poweroff");
                } catch (IOException e) {
                        return false;
                }
                return true;
        }

2. 修改/etc/sudoers,在末尾增加如下信息:
chb ALL=NOPASSWD:/sbin/reboot,/sbin/poweroff

3.设置开机自动启动tomcat,修改/etc/rc.d/rc.local,在末尾增加如下:
su chb -c "/opt/tomcat/bin/startup.sh"

问题描述:
每次开机自动启动的java进程,页面上的关机按钮都无法实现关机功能,但是此时如果以chb账号通过ssh登录该服务器,手动杀掉tomcat进程,然后再重新启动tomcat,页面上的关机按钮就有效了。各位知道这是为什么吗?是否和sudo加载顺序有关?或者和chb用户shell环境有关?

问题分析:
通过分析开机启动的JAVA进程和手动启动的JAVA进程,发现tty是不同的,接着再去google sudo和tty的关系,发现sudo默认是需要tty的,系统开机启动,没有tty,而我们通过ssh客户端登录服务器,杀掉tomcat,再重新启动tomcat,这时候可以获得tty为pts,因此可以使用sudo命令

解决方法:
通过修改/etc/sudoers文件,将
     Defaults requiretty
注释掉即可


    
 
 

您可能感兴趣的文章:

  • JIRA开机启动失败,提示无JAVA_HOME环境变量
  • redhat7.3下,java程序打印中文直接用java命令执行正常,用crontab执行java命令为乱码
  • java怎样实现 运行dos命令行的命令或者windows的程序
  • Saloris系统下,如何使用java调用setenv命令和source命令????
  • windows命令行中java和javac、javap使用详解(java编译命令)
  • java程序在linux运行,要用Runtime.exec()执行外部命令,可外部命令中关于文件操作的路径都很长,如何使用相对路径.在线等待
  • 请java高手,为我解释一下这个命令是干什么的?《java核心技术2》
  • 运行JAVA命令错误
  • 我用JDK中的javac命令编译一个test.java。系统提示不能打开test.java该文件!!!
  • 如何使用java这个命令?
  • 关于JAVA调用linux命令 生成密钥对的问题
  • msdos中如何用java命令执行程序
  • 我要生成java 的文档在dos 下用什么命令.
  • 我在执行javac命令的时候没有问题,但是在执行java命令的时候却报如下错误
  • 哪位高手知道java怎么执行liunx的命令?
  • java命令执行类文件时不在bin的目录下出现Exception in thread "main" java.lang.NoClassDefFoundError:
  • java中如何执行dos命令,如文件删除等(时间紧急)
  • 移动开发 iis7站长之家
  • Java程序中如何执行系统命令?
  • 用 java 命令运行 .class 出错,怎么办
  • 怎样用Java调用window命令或启动其它程序?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • jb5直接打开*.java无法运行
  • linux下安装java环境,无法启动系统了.
  • visualage for java3.0 entry edition 的帮助无法安装
  • 请问:哪里有下载Visibroker for java?我找到了两个地方,但是无法下载?(在线等待)
  • Linux下调用JSP页面产生无法找到Java Beans的错误
  • linux /etc/profile/ 修改后不能登录系统 java环境变量设置 无法保存
  • Java文件无法编译
  • 关于servlet 的编译问题,怎样设置classpth,把那些java servlet类包含到classpath?而且无法调用servlet!谢谢!
  • * 一抬腿就跌倒---servlet使用java Beans,无法创建:(
  • 为什么我无法import com.sun.java.swing.* 是否要下栽什么包啊。在那下栽。
  • 同时安装j2sdk和jbuilder,j2sdk下无法编译.java文件。WHY!!!
  • method 的不兼容类型。无法将 java.lang.String 转换为 java.sql.ResultSet?
  • IE6无法显示Applet,AppletViewer中可正常显示,亦安装了Java Plug In,不知是何原因
  • 真的有点灰心了,学java两个月才,最近在用jb6+weblogic6.1学习servlet,可使无论如何都无法运行,就连一个小小的.java格式的servlet程序我都没办法编译成.class文件,真的对java有点灰心了.....
  • 浅析Java Mail无法解析带分号的收件人列表的问题
  • [急救]Linux平台Java的Web系统,断电后无法运行!
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: stringflavor定义及介绍
  • 我对JAVA一窍不通,可惜别人却给我一个Java的project,要我做一个安装程序,请问哪里有JAVA INSTALLER下载,而且我要不要安装java的sdk才能完成此项任务?
  • java命名空间java.security类keystore的类成员方法: getdefaulttype定义及介绍
  • 新年第一天,让我们讨论一下未来一年JAVA的发展趋势! 个人认为,JAVA将主要朝ERP和JAVA手机方面发展!
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getclasspath定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3