プロセスを確認する
ps -p $$ -o pid,ppid,user,stat,comm PID PPID USER STAT COMMAND
2451 2440 mity Ss bashPIDはプロセス番号、PPIDは親、STATは状態です。全体はps aux、変化を見続けるならtopを使います。
pgrep -a bash2451 bash終了とシグナル
sleep 300 &
pid=$!
echo "$pid"
kill "$pid"
wait "$pid" 2>/dev/null
echo $?3180
143&はバックグラウンド実行、$!は直前のPIDです。引数なしのkillは終了を依頼するSIGTERMを送ります。143は一般に128+15(SIGTERM)です。
systemdサービスを調べる
systemd採用環境ではサービスをunitとして管理します。読み取り操作は一般ユーザーでも可能な場合があります。
systemctl is-active ssh
systemctl is-enabled sshactive
enabledRHEL系のOpenSSHサーバーは通常sshdです。存在する名前は次で絞り込みます。
systemctl list-unit-files --type=service | grep -E '^(ssh|sshd)\.' sudo systemctl restart sshdは接続中のSSHや利用者へ影響し得ます。設定検証、別の接続手段、保守時間を用意してから実施します。journalctlでログを読む
journalctl -b -p err --no-pager | tail -n 10-- No entries ---bは今回の起動、-p errはerror以上です。サービス単位はjournalctl -u ssh --since todayのように調べます。閲覧権限や保存設定により見える範囲は異なります。
IPアドレスと経路
ip -brief address
ip routelo UNKNOWN 127.0.0.1/8 ::1/128
eth0 UP 192.0.2.10/24
default via 192.0.2.1 dev eth0loは自分自身、defaultはより具体的な経路がない通信の送り先です。192.0.2.0/24は文書用アドレスで、実環境の表示とは異なります。
名前解決を確認する
getent hosts example.com2600:1406:5e00:6::17ce:bc12 example.comgetentはシステムの名前解決設定に従います。環境によってIPv4とIPv6の両方、またはいずれか一方だけが表示され、アドレス自体も時期・場所で変わります。詳細なDNS問い合わせには、導入されていればdig example.comを使えます。
待受ポートと接続を確認する
ss -lntpState Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*0.0.0.0:22は全IPv4インターフェースの22番で待受中という意味です。プロセス名は権限がないと表示されない場合があります。待受していてもファイアウォールや経路のため外部から接続できるとは限りません。
HTTPを段階的に確認する
curl -I https://example.com/HTTP/2 200
content-type: text/html
content-length: 1256実際のヘッダーは変わります。失敗時は、(1)インターフェース、(2)経路、(3)名前解決、(4)ポート、(5)アプリケーションの順に切り分けます。pingに応答しないだけで停止とは断定できません。
ミニ課題:読み取りだけで調査する
自分のシェルPID、既定経路、TCP待受を順に確認してください。
ps -p $$ -o pid,comm
ip route show default
ss -lnt