麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Java > 正文

java在linux系統下開機啟動無法使用sudo命令的原因及解決辦法

2019-11-26 16:00:03
字體:
來源:轉載
供稿:網友

操作系統: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
注釋掉即可

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久蜜桃精品一区二区三区综合网 | 特级a欧美做爰片毛片 | 一区二区视 | 嫩草影院在线观看网站成人 | 国产三级午夜理伦三级 | 久久嗨 | 国产精品成人免费一区久久羞羞 | 99视频有精品 | 亚洲视频在线免费看 | 国产黄色录像片 | 国产精品久久久久久久久久iiiii | 久久久久久久久久久影视 | 99ri精品 | 免费毛片随便看 | 久久www视频| 一区二区三区欧洲 | av免费在线观看国产 | 亚洲午夜激情网 | 91嫩草丨国产丨精品入口 | 久久国产精品二国产精品中国洋人 | 欧美一页 | 一级一片免费看 | 黄wwww | 久久国产一级 | 大胆在线日本aⅴ免费视频 美国黄色毛片女人性生活片 | 禁漫天堂久久久久久久久久 | 欧美一级免费在线观看 | 日产精品久久久一区二区福利 | 久久免费观看一级毛片 | 国产一区二区三区精品在线观看 | 国产一精品久久99无吗一高潮 | 91精品国产综合久久久欧美 | 久久久久久久久日本理论电影 | 嫩嫩的freehdxxx| 免费国产自久久久久三四区久久 | 国产亚洲精品成人a | 欧美日韩免费在线观看视频 | 黄色网战入口 | av最新在线观看 | 91网站链接| 动漫孕妇被羞羞视频 |