2017-05-02 3 views
1

質問:「専用サーバ」が正しく動作しているかどうかを確認するにはどうすればよいですか?専用CoreNLPサーバコントロールの問題

背景:私は、スタンドアロンLinuxシステム上で動作する「専用CoreNLPサーバ」を手に入れようとしています。このシステムは、CentOS 7を実行するラップトップです。このOSは、Dedicated CoreNLP Serverの指示でCentOSに適用されると具体的に記述されているため選択されました。

Iは、専用CoreNLPサーバステップ・バイ・ステップ(以下に概説)のための指示に従っている:スタンフォードCoreNLPウェブサイト(ないGitHubの)から

  1. ダウンロードCoreNLP 3.7.0および/配置は、にそれを抽出しました/opt/corenlpフォルダー。
  2. authbindをインストールして、スーパーユーザー権限を持つ 'NLP' というユーザーを作成し、ポート80

    sudo mkdir -p /etc/authbind/byport/

    sudo touch /etc/authbind/byport/80

    sudo chown nlp:nlp /etc/authbind/byport/80

    sudo chmod 600 /etc/authbind/byport/80

  3. コピーにバインドからのスタートアップスクリプト/etc/rc.d/sudo chmod a+x /etc/init.d/corenlp

  4. リンクスクリプト:/etc/init.d/corenlp

  5. へのパスedu/stanford/nlp/pipeline/demo/corenlpのソースジャーは、起動スクリプトに実行権限を与えるこれらのステップを完了ln -s /etc/init.d/corenlp /etc/rc.d/rc2.d/S75corenlp

に私を許可するようになっています専用サーバーを実行するには、コマンドsudo service corenlp startを実行してください。ターミナルでこのコマンドを実行すると、 "CoreNLP server started"という出力が得られます。ISは、起動スクリプト "corenlp"と一致しています。私は再び起動コマンドを実行し、ではないが起動スクリプトと一致するこの同じ応答を取得します。私が知ることから、サーバーが実際に稼動していて、もう一度起動しようとすると、「CoreNLPサーバーはすでに実行中です!」というメッセージが表示されます。これは私のサーバーが意図したとおりに実際には機能していないと私に信じさせます。

このコマンドはサーバーを正しく起動していますか?どうすればわかりますか?

「適切な」コマンドが機能していないため、私はsudo systemctl *start* corenlp.serviceというコマンドを使用して、サービスのステータスをsudo systemctl *status* corenlp.serviceで確認しました。私は、これが「専用CoreNLPサーバー」を開始して停止する適切な方法であるかどうかはわかりませんが、サービスを制御できます。私が実際に私の専用サーバを起動して停止しているかどうかは分かりません。

systemctlコマンドを使用してDedicated CoreNLP Serverを操作できますか?

+0

@GaborあなたはCoreNLPに関する知識と経験があるようです。あなたは私が何を経験しているかについていくつかの洞察を教えてくれますか? –

+0

@StanfordNLPHelp –

+0

'ps'はあなたに何を伝え、ログは何を言っているのですか?サーバの '/ ready'エンドポイントが出る前に起動スクリプトが書かれていましたので、今起動していなくてもサーバは起動しています。 –

答えて

2

最初に投稿された質問の下のコメントをお読みください。これは@GaborAngeliと私の質問/問題を解決する私との間を行き来したものでした。

Stanford CoreNLPのWebページに記載されている専用サーバの設定方法に関するすべての指示に従って、CoreNLPサーバを自分のマシン上でローカルに実行していることをインスタンス化するために私が取った2つの重要な手順は次のとおりです。

  1. "corenlp"スタートアップスクリプトに2つの変更を加えました。 (1)ユーザ "nlp"がシステム上の特定のファイルへのアクセス権を必要とするため、最初にsudoを追加しました。(2)最初のフォルダパスを/ usr/local/bin/authbindから/ usr/bin/authbindに変更しました。起動スクリプトが作成されてからauthbindのインストールが変更されている必要があります。

    nohup su "$SERVER_USER" -c "sudo /usr/bin/authbind --deep java -Djava.net.preferIPv4Stack=true -Djava.io.tmpdir_"$CORENLP_DIR" -cp "$CLASSPATH" -mx15g edu.stanford.nlp.pipeline.StanfordCoreNLPServer -port 80"

  2. あなたは上記の変更でサーバーを起動しようとした場合にsudoの使用量は、パスワードの入力を必要とするため、サーバーに正常に実行されません。パスワードの入力を必要とせずにsudo権限を許可するには、sudoersファイルを編集する必要があります(rootユーザーの下でこの文書を変更したり、表示する権限が必要です)。私のsudoersファイルは/ etcにありました。 ## Allows people in group wheel to run all commands以下の部分は、##Same thing without a passwordという部分です。 %wheel ALL+(ALL) NOPASSWD: ALLという次の行の前にあるコメント記号(#)を削除するだけです。このファイルを保存します。 重大な問題を引き起こす可能性があるため、このファイルを編集することには十分注意してください。

私が正常に私の専用サーバーを実行することができ、これらの二つのステップ上に概説のみ必要変更を行います。私は(あなたが正しく指示に従った場合は/ opt/corenlp)「はcorenlp」フォルダの中にあなたがへstderr.logファイルを開くことができることを学んだ@GaborAngeliと私の議論から:私のシステムは7

HELPFUL TIPのCentOS上で動作しますサーバーのトラブルシューティングに役立ちます。これは、コマンドウィンドウでサーバーを実行する場合に表示される内容を出力します。エラーがあれば、ここでも出力されます。これは非常に便利です。

関連する問題