web-dev-qa-db-ja.com

ポート番号によるプロセスIDの検索

私は(現時点では最小限の成功で)Fedora24サーバーにDovecotメールサーバーをセットアップしようとしています。 Dovecotをインストールし、confファイルを設定しました。すべて問題ありません。しかし、私が実行すると:

systemctl restart dovecot

Confファイルを編集した後、このメッセージが表示されます

Job for dovecot.service failed because the control process exited with error code. See "systemctl status dovecot.service" and "journalctl -xe" for details

systemctl status dovecot.serviceを実行すると、別のエラーが発生します

[root@Fedora app]# systemctl status dovecot.service
● dovecot.service - Dovecot IMAP/POP3 email server
   Loaded: loaded (/usr/lib/systemd/system/dovecot.service; disabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Tue 2016-08-16 15:02:30 UTC; 37min ago
     Docs: man:dovecot(1)
           http://wiki2.dovecot.org/
  Process: 11293 ExecStart=/usr/sbin/dovecot (code=exited, status=89)
  Process: 11285 ExecStartPre=/usr/libexec/dovecot/prestartscript (code=exited, status=0/SUCCESS)

Aug 16 15:02:30 Fedora dovecot[11293]: Error: service(imap-login): listen(*, 993) failed: Address already in use
Aug 16 15:02:30 Fedora dovecot[11293]: master: Error: service(imap-login): listen(*, 993) failed: Address already in use
Aug 16 15:02:30 Fedora dovecot[11293]: Error: service(imap-login): listen(::, 993) failed: Address already in use
Aug 16 15:02:30 Fedora dovecot[11293]: master: Error: service(imap-login): listen(::, 993) failed: Address already in use
Aug 16 15:02:30 Fedora dovecot[11293]: Fatal: Failed to start listeners
Aug 16 15:02:30 Fedora dovecot[11293]: master: Fatal: Failed to start listeners
Aug 16 15:02:30 Fedora systemd[1]: dovecot.service: Control process exited, code=exited status=89
Aug 16 15:02:30 Fedora systemd[1]: Failed to start Dovecot IMAP/POP3 email server.
Aug 16 15:02:30 Fedora systemd[1]: dovecot.service: Unit entered failed state.
Aug 16 15:02:30 Fedora systemd[1]: dovecot.service: Failed with result 'exit-code'.

lsof -i | grep 993を実行しようとしましたが、プロセスが生成されません。これを修正する方法はありますか?

5
user179084

netstatは、ネットワーク関連の多くの問題のトラブルシューティングを試みているときの友達です。リスニングポートを見つけるには、netstat -tulpn | grep :<port number>を使用します

たとえば、ポート22でリッスンしているpidを見つけるには、次のコマンドを実行します。

netstat -tulpn | grep :22
tcp  0  0 0.0.0.0:22    0.0.0.0:*    LISTEN      3062/sshd

これは、pid3062のsshdがポート22でリッスンしていることを示しています。

5
Jason Powell

ポート番号をgrepするよりも体系的で正確なssを使用したソリューションもお勧めです。

# ss -t -l 'sport = 22'
State      Recv-Q Send-Q Local Address:Port                 Peer Address:Port
LISTEN     0      128        *:ssh                      *:*
LISTEN     0      128       :::ssh                     :::*
3
Pavel Šimerda