我已经安装了一个使用 systemd 的程序
sudo netstat -lntp | grep 10700
tcp 0 0 127.0.0.1:10700 0.0.0.0:* LISTEN 2444/systemd
tcp6 0 0 ::1:10700 :::* LISTEN 2444/systemd
该进程名为systemd
ps aux | grep 2444
asd 2444 0.0 0.0 20124 10836 ? Ss Jan28 0:04 /lib/systemd/systemd --user
什么命令可以检查进程或至少检查使用该端口的 systemd 服务名称?
注意:我正在安装的程序是edgedb
edgedb instance list
┌───────┬──────┬───────┬─────────────┬────────┐
│ Kind │ Name │ Port │ Version │ Status │
├───────┼──────┼───────┼─────────────┼────────┤
│ local │ foo │ 10700 │ 2.9+b1d697b │ ready │
└───────┴──────┴───────┴─────────────┴────────┘
我只需要知道正在生成什么进程(因为sudo ps aux | grep edge
(或 foo 或 postgres)没有显示任何内容)
更新:啊,显然是 postgres,只有在edgedb
客户端命令运行时才会产生:
ps aux | grep postgres
asd 912323 0.0 0.0 372924 107732 ? SN 04:15 0:00 /home/asd/.local/share/edgedb/portable/2.9/bin/postgres -D /home/asd/.local/share/edgedb/data/foo -c listen_addresses= -c unix_socket_permissions=0700 -c unix_socket_directories=/run/user/1000/edgedb-foo -c max_connections=1289 -c max_locks_per_transaction=256 -c log_min_messages=NOTICE -c log_statement=none -c log_line_prefix=
asd 912325 0.0 0.0 372924 3548 ? SNs 04:15 0:00 postgres: checkpointer
asd 912326 0.0 0.0 373260 9664 ? SNs 04:15 0:00 postgres: background writer
asd 912327 0.0 0.0 372924 8944 ? SNs 04:15 0:00 postgres: walwriter
asd 912328 0.0 0.0 374508 7844 ? SNs 04:15 0:00 postgres: autovacuum launcher
asd 912329 0.0 0.0 71644 4944 ? SNs 04:15 0:00 postgres: stats collector
asd 912330 0.0 0.0 374232 5992 ? SNs 04:15 0:00 postgres: logical replication launcher
asd 912335 0.0 0.0 386380 44756 ? SNs 04:15 0:00 postgres: postgres V2f147ded60___edgedbsys__ [local] idle
asd 912337 0.0 0.0 401464 66444 ? SNs 04:15 0:00 postgres: postgres V2f147ded60_edgedb [local] idle
edgedb instance list
┌───────┬──────┬───────┬─────────────┬─────────┐
│ Kind │ Name │ Port │ Version │ Status │
├───────┼──────┼───────┼─────────────┼─────────┤
│ local │ foo │ 10700 │ 2.9+b1d697b │ running │
└───────┴──────┴───────┴─────────────┴─────────┘
但问题仍然是未来,如何知道哪个 systemd 文件使用该端口?