簡體   English   中英

如何使用SSH遠程啟動jboss服務?

[英]How start jboss service remotely with SSH?

我需要通過SSH遠程啟動Jboss 7.1.1的服務。 但是執行命令時並沒有發生。

命令: ssh user@server '/etc/init.d/jboss-as start' #(no error, no service started)

腳本jboss-as:

#!/bin/sh
case "$1" in
    start)
        echo "Starting JBoss AS 7"
        su --command "/path/to/jboss-as-7.1.1.Final/bin/standalone.sh >& /dev/null &" root
    ;;
    stop)
        echo "Stopping JBoss AS 7"
        su --command "/path/to/jboss-as-7.1.1.Final/bin/jboss-cli.sh --connect command=:shutdown" root
    ;;
    *)
        echo "Usage: /etc/init.d/jboss-as {start|stop}"
        exit 1
    ;;
esac
exit 0

如何執行命令: ssh user@server 'service jboss-as start'ssh user@server '/etc/init.d/jboss-as start' ssh user@server 'service jboss-as start' ssh user@server '/etc/init.d/jboss-as start'嗎?

  • 與ssh的連接可以
  • Jboss服務器正常
  • 如果我執行代碼: ssh user@server '/etc/init.d/mysql restart'就會發生!

有幾件事限制了您使用命令運行此服務的能力,因為這是啟動服務的有效方法。

user@server '/etc/init.d/jboss-as start'

啟動SSH連接后,您可以對所有這些進行遠程測試。 SSH進入服務器,並使用上述命令以您要連接的同一用戶身份啟動服務。

首先,使用ls /etc/init.d/ | grep'jboss'確保該服務實際上被稱為'jboos-as'。 結果將與調用命令的方式完全相同,因此用grep的輸出替換jboss-as。

其次,這是初始化腳本的權限問題。 從網上可以看到,您必須創建此腳本,因此,如果未正確設置權限,它將不會執行。

要檢查運行ls -al /etc/init.d/ |grep 'jboss' ,您的輸出應如下所示:

輸出:

-rwxr-xr-x.  1 root root   2979 Sep 19 05:34 jboss*

發出啟動命令的用戶將需要與列出的第一個用戶匹配。 在這種情況下,第一個“根”和/或與示例中第二個“根”的組列表位於同一組中。 例如,如果您的用戶在wheel組中,則可能會有所不同,但通常服務是作為root用戶或該服務的特定用戶運行的。

最后,更重要的方面是該文件是可執行文件。 上面的ls -al輸出中將其列為x值。 如果未列出“ x”,則需要使用以下命令使文件可執行:

chmod +x /etc/init.d/jboss

重要上述所有命令將需要您參考第一個grep命令中輸出的文件,因此/etc/init.d/jboss-as或/etc/init.d/jboss或/etc/init.d/jboss -有些不同。

希望這對您有所幫助,如果沒有幫助,請發布ls -al輸出的結果,我們將為您提供進一步的幫助。

好。 走吧

  1. 搜索jboss服務的名稱:

    ls /etc/init.d/ |grep 'jboss'返回“ jboss-as”。 沒關系!

  2. 權限:

    ls -al /etc/init.d/ |grep 'jboss'返回完全相同的輸出: -rwxr-xr-x. 1 root root 2979 Sep 19 05:34 jboss-as -rwxr-xr-x. 1 root root 2979 Sep 19 05:34 jboss-as沒關系!

仍然不起作用。 執行此命令的主要目的是在Java程序中使用SWT和實現SSH的lib(稱為JSCH)中的按鈕動作。 看一下代碼:

Session session = jsch.getSession("user", "SERVER_IP_ADDRESS", PORT);
session.setPassword("pass");
java.util.Properties config = new java.util.Properties(); 
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.connect();
Channel channel = session.openChannel("exec");
((ChannelExec)channel).setCommand("'/etc/init.d/jboss-as start'"); #command to start jboss service
channel.setInputStream(null);
((ChannelExec)channel).setErrStream(System.err);
InputStream in=channel.getInputStream();
channel.connect();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM