欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java在linux系統(tǒng)下開機(jī)啟動無法使用sudo命令的原因及解決辦法

 更新時間:2013年08月29日 08:48:16   作者:  
每次開機(jī)自動啟動的java進(jìn)程,頁面上的關(guān)機(jī)按鈕都無法實(shí)現(xiàn)關(guān)機(jī)功能,但是此時如果以chb賬號通過ssh登錄該服務(wù)器,手動殺掉tomcat進(jìn)程,然后再重新啟動tomcat,頁面上的關(guān)機(jī)按鈕就有效了

操作系統(tǒng):centos 5.2
場景描述:
我們有一個WEB工程,客戶要求使用普通用戶(例如chb)運(yùn)行,然后在頁面上有個按鈕,點(diǎn)擊之后可以關(guān)機(jī)

實(shí)現(xiàn)方式:
1. JAVA代碼:

復(fù)制代碼 代碼如下:

        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.設(shè)置開機(jī)自動啟動tomcat,修改/etc/rc.d/rc.local,在末尾增加如下:
su chb -c "/opt/tomcat/bin/startup.sh"

問題描述:
每次開機(jī)自動啟動的java進(jìn)程,頁面上的關(guān)機(jī)按鈕都無法實(shí)現(xiàn)關(guān)機(jī)功能,但是此時如果以chb賬號通過ssh登錄該服務(wù)器,手動殺掉tomcat進(jìn)程,然后再重新啟動tomcat,頁面上的關(guān)機(jī)按鈕就有效了。各位知道這是為什么嗎?是否和sudo加載順序有關(guān)?或者和chb用戶shell環(huán)境有關(guān)?

問題分析:
通過分析開機(jī)啟動的JAVA進(jìn)程和手動啟動的JAVA進(jìn)程,發(fā)現(xiàn)tty是不同的,接著再去google sudo和tty的關(guān)系,發(fā)現(xiàn)sudo默認(rèn)是需要tty的,系統(tǒng)開機(jī)啟動,沒有tty,而我們通過ssh客戶端登錄服務(wù)器,殺掉tomcat,再重新啟動tomcat,這時候可以獲得tty為pts,因此可以使用sudo命令

解決方法:
通過修改/etc/sudoers文件,將
     Defaults requiretty
注釋掉即可

相關(guān)文章

  • Mybatis中updateBatch實(shí)現(xiàn)批量更新

    Mybatis中updateBatch實(shí)現(xiàn)批量更新

    本文主要介紹了Mybatis中updateBatch實(shí)現(xiàn)批量更新,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 解析Spring?漏洞及其修復(fù)方案

    解析Spring?漏洞及其修復(fù)方案

    官宣了最近網(wǎng)傳的Spring漏洞。攻擊者利用該漏洞,可在未授權(quán)的情況下遠(yuǎn)程執(zhí)行命令,今天通過本文給大家普及下漏洞分析影響范圍及解決方案,感興趣的朋友跟隨小編一起看看吧
    2022-04-04
  • 利用Java連接Hadoop進(jìn)行編程

    利用Java連接Hadoop進(jìn)行編程

    這篇文章主要介紹了利用Java連接Hadoop進(jìn)行編程,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下
    2022-06-06
  • Java判斷上傳圖片格式的實(shí)例代碼

    Java判斷上傳圖片格式的實(shí)例代碼

    這篇文章主要介紹了Java判斷上傳圖片格式的實(shí)例代碼,在文中給大家提到了Java使用文件頭的類型判斷上傳的文件是否為圖片類型,需要的朋友可以參考下
    2019-06-06
  • 利用Java多線程技術(shù)導(dǎo)入數(shù)據(jù)到Elasticsearch的方法步驟

    利用Java多線程技術(shù)導(dǎo)入數(shù)據(jù)到Elasticsearch的方法步驟

    這篇文章主要介紹了利用Java多線程技術(shù)導(dǎo)入數(shù)據(jù)到Elasticsearch的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • 簡單了解Spring中的事務(wù)控制

    簡單了解Spring中的事務(wù)控制

    這篇文章主要介紹了簡單了解Spring中的事務(wù)控制,事務(wù)是一組操作的執(zhí)行單元,下面我們來簡單學(xué)習(xí)一下吧
    2019-05-05
  • Ubuntu 16.04 安裝 java 8的方法

    Ubuntu 16.04 安裝 java 8的方法

    這篇文章主要介紹了Ubuntu 16.04 安裝 java 8的方法,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • ShardingSphere jdbc集成多數(shù)據(jù)源的實(shí)現(xiàn)步驟

    ShardingSphere jdbc集成多數(shù)據(jù)源的實(shí)現(xiàn)步驟

    本文主要介紹了ShardingSphere jdbc集成多數(shù)據(jù)源的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • 深入理解happens-before和as-if-serial語義

    深入理解happens-before和as-if-serial語義

    本文大部分整理自《Java并發(fā)編程的藝術(shù)》,溫故而知新,加深對基礎(chǔ)的理解程度。下面可以和小編來一起學(xué)習(xí)下
    2019-05-05
  • 開發(fā)者必讀:揭秘Python與Java的性能較量

    開發(fā)者必讀:揭秘Python與Java的性能較量

    本文將探討這兩種流行的編程語言之間的性能差異,無論你是剛剛?cè)腴T編程還是已經(jīng)有一定經(jīng)驗(yàn),這個指南都將幫助你了解Python和Java在執(zhí)行速度、內(nèi)存管理以及擴(kuò)展性方面的不同,通過比較這兩種語言的特點(diǎn)和優(yōu)勢,你將能夠更好地選擇適合自己項(xiàng)目需求的編程語言,讓我們開始吧!
    2023-12-12

最新評論