0
我有一臺機器上的mojolicio服務器,我從另一臺機器連接到它。我有一個腳本來檢查mojolicio是否啓動 - 如果它沒有運行,就運行它。我用下面的命令行來運行服務器:從SSH運行Perl Mojolicio服務器
ssh [email protected] 'cd /server_path/; (nohup /usr/bin/perl server_file >nohup.out &);'
的server_file是提高服務器是一個腳本下面的腳本:
#!/usr/bin/env perl
use Mojo::Base -strict;
use File::Basename 'dirname';
use File::Spec::Functions qw(catdir splitdir);
# Source directory has precedence
my @base = (splitdir(dirname(__FILE__)), '..');
my $lib = join('/', @base, 'lib');
-e catdir(@base, 't') ? unshift(@INC, $lib) : push(@INC, $lib);
# Start commands for application
require Mojolicious::Commands;
Mojolicious::Commands->start_app('MyServer', 'daemon','-l','http://*:3030');
如果服務器已關閉,我運行此命令 - 我在機器上看到服務器已啓動並正在運行,並且正在監聽它配置爲偵聽的端口。現在,如果我嘗試從瀏覽器連接到服務器,它不會加載。它堅持加載和最終我沒有找到頁面。但是如果我從服務器本身運行相同的命令,它可以工作,並且可以在運行後加載主頁。
我發現這個問題..
如果我使用nohup與SSH,則服務器在某種程度上將是不可到達的 - 但是當我運行的服務器,而不作爲的nohup - 例如使用以下代碼:
ssh [email protected] 'cd /server_path/; (usr/bin/perl server_file);'
它的工作原理。
這裏可能是什麼問題?
非常感謝。
你可能想看看nohup.out來找出程序報告的錯誤。 – Quentin
沒有錯誤 - nohup告訴我服務器已啓動並正在監聽: 在「http:// *:3030」 – iseif