「Address already in use」エラーの原因と対処法|ポート競合の解決方法を環境別に徹底解説

  • 作成日 2026.06.17
  • mysql
「Address already in use」エラーの原因と対処法|ポート競合の解決方法を環境別に徹底解説

開発中に以下のようなエラーで作業が止まった経験はありませんか?

Error: listen EADDRINUSE: address already in use :::3000
bind: address already in use
Bind for 0.0.0.0:8080 failed: port is already allocated
java.net.BindException: Address already in use
OSError: [Errno 98] Address already in use

これは「指定したポート番号がすでに他のプロセスに使われている」というエラーです。プロセス・サーバー・コンテナを起動するたびに遭遇する高頻度トラブルで、解決方法が分からないと開発が止まってしまいます。

  • 昨日まで動いていた開発サーバーが起動しなくなった
  • 直前にアプリを終了したのに、再起動でエラーが出る
  • Dockerコンテナの起動に失敗する
  • どのプロセスがポートを使っているのか分からない
  • WindowsとMacで対処方法が違う気がする
  • アプリを完全に強制終了する正しい方法が分からない

本記事では、「Address already in use」エラーのすべての原因と対処法を、Linux/Mac/Windowsそれぞれの環境別、Node.js/Python/Java/Docker/MySQL等のアプリケーション別に整理します。ポート使用プロセスの特定方法、安全な停止手順、TIME_WAIT問題、再発防止策、FAQまで完全網羅。この1本で「ポート競合」のトラブル全般が解決します。


目次

結論:今すぐ試すべき3ステップ

時間がない方向けに、まず試すべき手順を示します。

ステップ1:ポートを使っているプロセスを特定

# Linux/Mac
lsof -i :3000

# Linux(lsofが無い場合)
ss -tlnp | grep :3000

# Windows
netstat -ano | findstr :3000

ステップ2:プロセスを停止

# Linux/Mac
kill -9 <PID>

# Windows
taskkill /F /PID <PID>

ステップ3:アプリを再起動

エラーが解消されているはずです。それでも解決しない場合は、以下の詳細な原因分析へ進んでください。


まず押さえる:エラーが出る本当の理由

このエラーを理解するには、TCPポートの仕組みを知る必要があります。

TCPポートの基本

サーバーアプリケーションは、特定のポート番号でクライアントからの接続を待ち受けます。OSが1つのポートに対して1つのプロセスのみバインド可能というルールを持っているため:

プロセスA → ポート3000をバインド済み(待ち受け中)
プロセスB → 同じポート3000をバインドしようとする → エラー

エラーメッセージのバリエーション

OS・アプリケーションによって表記が異なりますが、すべて同じ原因です:

表記出現環境
Address already in useC/C++、Python、Java等
EADDRINUSENode.js、libuv
port is already allocatedDocker
bind() failedApache、Nginx
Connection in use: xxxJava Tomcat
Cannot assign requested address別問題(IPバインドエラー)

原因のカテゴリ

カテゴリ頻度
同じアプリの2重起動nodemonでの再起動失敗、デバッガとアプリ同時起動最多
前回プロセスがゾンビ化クラッシュ後、メモリには残っている
別アプリがポート使用中別の開発サーバー、システムサービス
Dockerコンテナ起動済み同じポートのコンテナが既に動作中
TIME_WAIT状態接続終了直後の再起動
権限不足(1024未満)1024未満のポートをroot以外で使用
複数IPバインド競合0.0.0.0 と特定IPの衝突

これらを順番にチェックすればOKです。


ポート使用プロセスを特定する(Linux/macOS)

最重要のスキルです。複数のコマンドを使い分けます。

lsof(最も確実)

# 特定ポートを使用中のプロセス確認
lsof -i :3000

# 出力例
COMMAND   PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
node    12345 alice   18u  IPv6 0x1234      0t0  TCP *:3000 (LISTEN)

PID(プロセスID)= 12345 がポート3000を使用していると分かります。

lsofの便利な使い方

# プロセス名指定
lsof -i -P -n | grep LISTEN

# TCP接続のみ
lsof -iTCP:3000 -sTCP:LISTEN

# 複数ポートを一度に
lsof -i:3000,8080,5000

# 特定プロセスが開いているポート全部
lsof -i -P -p 12345

netstat(古いが普及)

# Linux
netstat -tlnp | grep :3000

# macOS(オプションが異なる)
netstat -anv | grep LISTEN | grep 3000

# 出力例
tcp6  0  0 :::3000  :::*  LISTEN  12345/node

最後の 12345/node がPIDとプロセス名です。

⚠️ netstatは新しい Linux ディストリビューションではデフォルト未インストールになることが増えています。代わりに ss を使ってください。

ss(モダンな後継)

# 特定ポート確認
ss -tlnp | grep :3000

# 全LISTENポート
ss -tlnp

# 出力例
LISTEN  0  511  *:3000  *:*  users:(("node",pid=12345,fd=18))

pid=12345 がPIDです。

fuser(プロセスにシグナルも送れる)

# 使用プロセス確認
fuser 3000/tcp

# 出力例
3000/tcp:           12345

# 強制終了まで一気に
fuser -k 3000/tcp

-kオプションは即時 KILL します。便利ですが慎重に。

pgrep / pkill(プロセス名で操作)

# Node.jsプロセスを探す
pgrep -lf node

# Node.jsプロセスを停止
pkill -f "node app.js"

ポート使用プロセスを特定する(Windows)

コマンドプロンプト:netstat

netstat -ano | findstr :3000

出力例:

  TCP    0.0.0.0:3000           0.0.0.0:0              LISTENING       12345
  TCP    [::]:3000              [::]:0                 LISTENING       12345

最後の 12345 がPIDです。

PowerShell:Get-NetTCPConnection(推奨)

# ポート使用プロセス確認
Get-NetTCPConnection -LocalPort 3000 | 
    Select-Object LocalAddress, LocalPort, State, OwningProcess

# プロセス詳細も含めて
Get-NetTCPConnection -LocalPort 3000 | 
    ForEach-Object {
        Get-Process -Id $_.OwningProcess
    }

出力例:

Handles  NPM(K)    PM(K)      WS(K)     CPU(s)     Id  ProcessName
-------  ------    -----      -----     ------     --  -----------
    234      15    25432      32456       1.23  12345  node

プロセス名 → ポートの逆引き

# 全Node.jsプロセスの使用ポート
Get-Process node | ForEach-Object {
    Get-NetTCPConnection -OwningProcess $_.Id -ErrorAction SilentlyContinue
}

プロセスを停止する方法

Linux/macOSでの停止

# 通常終了(SIGTERM)- アプリに後処理の時間を与える
kill <PID>
# 例
kill 12345

# 強制終了(SIGKILL)- 即座に停止
kill -9 <PID>

# プロセス名で全て停止
killall node
killall -9 node  # 強制

# fuserでまとめて
fuser -k 3000/tcp

優先順位

  1. まずは通常 kill: 後処理(DBコネクションクローズ等)が走る
  2. 応答しなければ kill -9: 強制終了

kill -9は最終手段。データ破損のリスクがあるため、まずは通常killを試してください。

Windowsでの停止

# 通常終了
taskkill /PID 12345

# 強制終了(/F付き)
taskkill /F /PID 12345

# プロセス名で
taskkill /IM node.exe /F

# 子プロセスも含めて
taskkill /T /F /PID 12345

PowerShellの場合:

# プロセスID指定
Stop-Process -Id 12345 -Force

# プロセス名指定
Stop-Process -Name node -Force

# 特定ポートを使うプロセスを停止(ワンライナー)
Get-NetTCPConnection -LocalPort 3000 | 
    ForEach-Object { Stop-Process -Id $_.OwningProcess -Force }

1行で完結させるワンライナー集

# Linux: ポート3000を使うプロセスを強制終了
sudo kill -9 $(lsof -t -i:3000)

# Linux: ssで確認 → kill
ss -tlnp | grep :3000 | grep -oP 'pid=\K[0-9]+' | xargs -r kill -9

# Linux: fuser版
sudo fuser -k 3000/tcp

# macOS: lsofから抽出
sudo lsof -ti:3000 | xargs kill -9

アプリケーション・フレームワーク別の対処

Node.js(Express、Fastify、Next.js等)

よくあるエラー

Error: listen EADDRINUSE: address already in use :::3000
    at Server.setupListenHandle [as _listen2] (node:net:1855:16)

対処

# 1. ポート使用プロセスを確認
lsof -i :3000

# 2. プロセス停止
kill -9 <PID>

# 3. 再起動
npm run dev

コード側での対処

// Expressで graceful shutdown を実装
const server = app.listen(3000, () => {
    console.log('Server started on port 3000');
});

process.on('SIGTERM', () => {
    console.log('SIGTERM received, shutting down...');
    server.close(() => {
        console.log('Server closed');
        process.exit(0);
    });
});

process.on('SIGINT', () => {
    server.close(() => process.exit(0));
});

これでCtrl+Cやプロセス終了時にポートを確実に解放できます。

nodemon使用時のトラブル

# nodemonがゾンビプロセスを残すことがある
ps aux | grep node
pkill -f node

Python(Flask、Django、FastAPI等)

よくあるエラー

OSError: [Errno 98] Address already in use

対処

# Flaskのデフォルトポート5000
lsof -i :5000
kill -9 <PID>

# Django (runserver) のデフォルトポート8000
lsof -i :8000
kill -9 <PID>

# 起動時に別ポート指定して回避
flask run --port 5001
python manage.py runserver 8001

コード側での対処(Flask)

from flask import Flask
import signal
import sys

app = Flask(__name__)

def shutdown(sig, frame):
    print('Shutting down...')
    sys.exit(0)

signal.signal(signal.SIGINT, shutdown)
signal.signal(signal.SIGTERM, shutdown)

if __name__ == '__main__':
    app.run(port=5000)

Gunicorn / uWSGI 経由の場合

# Gunicornプロセスを探す
pgrep -lf gunicorn

# 全Gunicornを停止
pkill -f gunicorn

# 設定ファイルからリロード
kill -HUP <gunicorn_master_pid>

Java(Spring Boot、Tomcat等)

よくあるエラー

java.net.BindException: Address already in use
APR_TCP_NODELAY: Address already in use: bind

対処

# Spring Boot のデフォルトポート8080
lsof -i :8080
kill -9 <PID>

# Tomcatのプロセス確認
ps aux | grep tomcat
ps aux | grep java

application.propertiesで別ポート

# Spring Boot
server.port=8081

または環境変数:

SERVER_PORT=8081 java -jar app.jar

Tomcatの場合

# Tomcatを正しく停止
$CATALINA_HOME/bin/shutdown.sh

# それでもダメな場合
ps aux | grep tomcat
kill -9 <PID>

Ruby(Rails、Puma、Unicorn等)

よくあるエラー

A server is already running. Check /path/to/tmp/pids/server.pid
Errno::EADDRINUSE: Address already in use - bind(2) for "127.0.0.1" port 3000

対処

# server.pid を確認
cat tmp/pids/server.pid
# プロセスがゾンビなら削除
rm tmp/pids/server.pid

# Pumaプロセス特定
ps aux | grep puma
kill -9 <PID>

# 別ポートで起動
rails server -p 3001

PHP(php-fpm、組み込みサーバー)

# php -S 8000 の場合
lsof -i :8000
kill -9 <PID>

# php-fpm 停止
sudo systemctl stop php-fpm
sudo systemctl restart php-fpm

Go

// graceful shutdown例
package main

import (
    "context"
    "log"
    "net/http"
    "os"
    "os/signal"
    "syscall"
    "time"
)

func main() {
    server := &http.Server{Addr: ":8080"}
    
    go func() {
        if err := server.ListenAndServe(); err != http.ErrServerClosed {
            log.Fatalf("Server failed: %v", err)
        }
    }()
    
    quit := make(chan os.Signal, 1)
    signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM)
    <-quit
    
    ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
    defer cancel()
    server.Shutdown(ctx)
}

Docker での「port is already allocated」

Dockerコンテナでも頻発するエラーです。

よくあるエラー

docker: Error response from daemon: driver failed programming external connectivity 
on endpoint mycontainer: Bind for 0.0.0.0:3000 failed: port is already allocated.

原因と対処

原因1:既存コンテナが同じポートを使用

# 全コンテナの使用ポート確認
docker ps --format "table {{.Names}}\t{{.Ports}}"

# 既存コンテナ停止
docker stop <container_name>
docker rm <container_name>

原因2:停止済みコンテナがまだ削除されていない

# 停止コンテナも含めて表示
docker ps -a

# 停止コンテナ全削除
docker container prune

原因3:ホスト側の別プロセスが使用中

# ホスト側で確認
lsof -i :3000

# Dockerコンテナ以外のプロセスならkill

原因4:別ポートにマッピングする

# 3000の代わりに3001でマッピング
docker run -p 3001:3000 myapp

Docker Composeの場合

services:
  app:
    ports:
      - "3001:3000"  # ホストのポートを変更

Docker Desktopの再起動

どうしても解決しない場合の最終手段:

  • macOS: Docker Desktop アイコンから「Restart」
  • Windows: Docker Desktop再起動
  • Linux: sudo systemctl restart docker

データベースサーバーの対処

MySQL

# MySQLのデフォルトポート3306
lsof -i :3306

# サービス管理
sudo systemctl status mysql
sudo systemctl stop mysql
sudo systemctl start mysql

# プロセス直接停止
sudo killall mysqld

別ポートで起動:

# /etc/mysql/my.cnf

[mysqld]

port = 3307

PostgreSQL

# PostgreSQLのデフォルトポート5432
lsof -i :5432

# サービス管理
sudo systemctl status postgresql
sudo systemctl restart postgresql

# 安全な停止(コマンドライン)
sudo -u postgres pg_ctl stop -D /var/lib/postgresql/data

Redis

# Redisのデフォルトポート6379
lsof -i :6379

# Redisクライアント経由で停止
redis-cli SHUTDOWN

# サービス管理
sudo systemctl stop redis

Oracle

Oracleのリスナーポート競合は本シリーズの[ORA-12541記事]で詳細解説しています。

lsof -i :1521
lsnrctl stop

Webサーバーの対処

Apache

# Apache のポート80・443
lsof -i :80
lsof -i :443

# サービス管理
sudo systemctl status apache2  # Debian系
sudo systemctl status httpd    # RHEL系

sudo systemctl stop apache2
sudo systemctl start apache2

# Apache設定で別ポート使用
# /etc/apache2/ports.conf
Listen 8080

Nginx

# Nginx のポート80・443
lsof -i :80

# サービス管理
sudo systemctl status nginx
sudo systemctl reload nginx   # 設定変更の反映
sudo systemctl restart nginx

# Nginx設定で別ポート
# /etc/nginx/sites-enabled/default
server {
    listen 8080;
}

IIS(Windows)

# IIS停止
iisreset /stop

# 起動
iisreset /start

TIME_WAIT 状態の問題

接続を終了した直後にすぐ再起動すると、TIME_WAIT状態が残ってバインドできないことがあります。

TIME_WAIT の確認

# TIME_WAIT状態の接続一覧
ss -tan | grep TIME_WAIT

# 特定ポート
ss -tan | grep :3000 | grep TIME_WAIT

TIME_WAIT が出るパターン

  • アプリ終了直後に再起動
  • クライアントから多数の短時間接続
  • ロードバランサ越しのアプリ

対処1:SO_REUSEADDR を有効化

アプリ側でSO_REUSEADDRソケットオプションを有効にすると、TIME_WAIT状態のポートも再バインドできます。

Python例

import socket

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind(('0.0.0.0', 3000))

Node.js(標準で対応済み)

Node.jsのnet.Serverは内部的にSO_REUSEADDRを設定しています。

Java

ServerSocket server = new ServerSocket();
server.setReuseAddress(true);
server.bind(new InetSocketAddress(3000));

対処2:TIME_WAIT タイムアウトを短くする(カーネル設定)

⚠️ システム全体に影響するため、慎重に検討してください。

# Linux
sudo sysctl -w net.ipv4.tcp_fin_timeout=30

# 再利用許可
sudo sysctl -w net.ipv4.tcp_tw_reuse=1

恒久化するには /etc/sysctl.conf に追記。


1024未満のポートと権限

1024未満のポート(80, 443等の「well-known port」)を使うにはroot権限が必要です。

よくあるエラー

Error: listen EACCES: permission denied 0.0.0.0:80

対処1:sudo で起動

sudo node app.js

⚠️ アプリをroot権限で動かすのはセキュリティ的に非推奨。

対処2:1024以上のポートを使ってリバースプロキシ経由

[Nginx (port 80)] → [Node.js app (port 3000)]

Nginxが80番をlistenし、内部でNode.jsアプリ(3000番)に転送。

対処3:CAP_NET_BIND_SERVICE 設定

# Node.jsバイナリに低ポートバインド権限を付与
sudo setcap 'cap_net_bind_service=+ep' $(which node)

# これでnodeコマンドが80番ポートをバインド可能になる(root不要)

対処4:authbind / iptables 転送

# iptablesで 80 → 3000 にリダイレクト
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000

再発を防ぐベストプラクティス

1. Graceful shutdown の実装

すべてのサーバーアプリで SIGINT / SIGTERM をキャッチして、ソケットを確実にクローズする処理を実装します。本記事の各言語例を参考に。

2. アプリ起動スクリプトでポートチェック

#!/bin/bash
PORT=3000
if lsof -i :$PORT > /dev/null 2>&1; then
    echo "Port $PORT is in use. Killing existing process..."
    lsof -ti:$PORT | xargs kill -9
    sleep 1
fi
npm start

3. PIDファイル管理

プロセスIDをファイルに記録し、再起動時に古いプロセスを停止する仕組み。

# 起動時
node app.js & echo $! > /tmp/app.pid

# 停止時
kill $(cat /tmp/app.pid)
rm /tmp/app.pid

4. systemd サービス化

systemd経由でアプリを管理すれば、確実な起動・停止・再起動ができます。

# /etc/systemd/system/myapp.service
[Unit]
Description=My App
After=network.target

[Service]
ExecStart=/usr/bin/node /path/to/app.js
Restart=always
User=appuser

[Install]
WantedBy=multi-user.target
sudo systemctl enable myapp
sudo systemctl start myapp
sudo systemctl restart myapp

5. ポート割り当て規約

チーム開発でポート衝突を防ぐ:

ポート用途
3000フロントエンド開発サーバー
4000GraphQL API
5000バックエンドAPI
8000Django等
9000別の開発サーバー

事前にポート割り当てを決めておくと、開発時の衝突を減らせます。

6. Docker Composeでの分離

開発環境はDocker Composeで隔離し、ホストOSのポートと分離します。

services:
  app:
    ports:
      - "127.0.0.1:3000:3000"  # ローカル限定

トラブルシューティング・チェックリスト

エラーが出た時に順番にチェック:

  1. エラーメッセージからポート番号を特定
  2. lsof -i :ポート番号 でプロセス確認
  3. そのプロセスは自分のアプリか別アプリか判断
  4. 不要なら kill -9 PID で停止
  5. アプリを再起動して動作確認
  6. 再発するなら graceful shutdown 実装
  7. TIME_WAIT 関連なら SO_REUSEADDR 検討
  8. どうしても解決しない場合は別ポートで起動
  9. Docker環境なら docker ps でコンテナ確認
  10. OS再起動は最終手段

よくある質問(FAQ)

Q1. プロセスを停止しても再起動するとまた同じエラーが出ます

考えられる原因:

  • デーモンとして起動している(systemd等が自動再起動)
  • PM2やforeverなどのプロセスマネージャが管理中
  • Docker Composeでrestart: always設定
  • launchd(macOS)が管理中

それぞれの管理ツール経由で正しく停止する必要があります:

# PM2
pm2 stop all
pm2 delete all

# Docker Compose
docker-compose down

# systemd
sudo systemctl stop myapp

Q2. lsofコマンドが見つかりません

# Ubuntu/Debian
sudo apt install lsof

# CentOS/RHEL
sudo yum install lsof

# Alpine
apk add lsof

または ssnetstat で代替できます。

Q3. Windowsで netstat -ano が分かりにくいです

PowerShellのGet-NetTCPConnectionの方が出力が見やすく、PowerShellパイプラインと連携できます:

Get-NetTCPConnection -LocalPort 3000 | Format-Table

Q4. kill -9 とkillの違いは?

  • kill <PID>: SIGTERMを送信。プロセスは終了処理(DBクローズ等)を実行してから停止
  • kill -9 <PID>: SIGKILLを送信。プロセスを即座に強制停止(クリーンアップなし)

まず通常 kill を試して、応答しない場合のみ -9 を使うのが正しい順序です。

Q5. Macで lsof を使うと「Operation not permitted」が出ます

System Integrity Protection(SIP)が影響している可能性。sudo lsof で再試行してください:

sudo lsof -i :3000

Q6. dockerコンテナ内からホストの開発サーバーに接続できません

ホストのIPアドレス指定が必要:

# Linux
curl http://172.17.0.1:3000

# Mac/Windows Docker Desktop
curl http://host.docker.internal:3000

Q7. CI/CDパイプラインでポート競合が起きます

並列実行のテスト環境でよくあります:

  • テストごとにランダムポートを使う設計に変更
  • Dockerコンテナ単位で実行環境分離
  • Pythonの場合 pytest-xdist で分離
  • JavaScriptの場合 jestrandomize オプション

Q8. systemd経由で起動したサービスのプロセスを正しく停止するには?

# サービスとして停止
sudo systemctl stop myapp

# 強制停止(kill経由)は非推奨
# sudo kill -9 <PID>  # ← これだとsystemdが自動再起動する

サービスを完全に停止するには:

sudo systemctl stop myapp
sudo systemctl disable myapp

Q9. ポートを自由に予約・解放できる仕組みはありますか?

OSのソケットライブラリレベルでは、バインド中だけポートを占有する仕組みです。プロセスを終了すると即座に解放されます(TIME_WAIT除く)。アプリ側でグレースフル・シャットダウンを実装すれば、確実な解放が可能です。

Q10. ポート番号は何番までなら自由に使えますか?

  • 0〜1023: Well-known port。標準サービス(HTTPの80等)。root権限必要
  • 1024〜49151: Registered port。アプリケーション用に登録されている
  • 49152〜65535: Dynamic/Private port。自由利用OK

開発時は 3000、4000、5000、8000、8080 などの空き番号を使うのが慣例です。

Q11. WSL2でWindows側のポートと競合します

WSL2はネットワーク的にホストWindowsと統合されているため、両方で同じポートを使えません。回避策:

# WSL2のIPアドレスを取得
wsl hostname -I

# Windowsから直接WSL2にアクセスする場合は特殊ポートマッピングが必要
# (Windows 11 22H2以降は mirrored モードで改善)

Q12. ifconfig や netstat が「コマンドが見つかりません」になります

Ubuntu 22.04以降、net-toolsがデフォルト未インストール:

sudo apt install net-tools

または、後継ツール ipsslsof を使う方が推奨です。


参考リンク・関連資料

Linux/Mac関連ドキュメント

Windows関連

ネットワーク基礎

Docker

プログラム言語別

関連記事(本サイト)

  • [UbuntuでIPアドレスを確認する全方法] – ネットワーク確認の網羅
  • [wget と curl の違いを徹底比較] – HTTP通信ツール
  • [Ubuntuでアンインストールする全方法] – パッケージ管理
  • [ORA-12541: TNS no listener エラー対処] – Oracleリスナーポート競合

まとめ

「Address already in use」エラーは開発で最も頻繁に遭遇するトラブルのひとつですが、手順を確立しておけば1分で解決できます。要点を再整理します。

  • 3ステップで解決: プロセス特定 → 停止 → 再起動
  • ポート確認の基本コマンド: lsof -i :ポート / ss -tlnp / netstat -ano
  • プロセス停止: まず kill、応答しなければ kill -9
  • Docker特有: docker ps、コンテナ停止 or ホストポート変更
  • TIME_WAIT問題: SO_REUSEADDRで回避
  • 1024未満ポート: 権限注意、リバースプロキシ推奨
  • 再発防止: Graceful shutdown、PIDファイル、systemd管理

これらの知識は、Web開発・API開発・サーバー運用・Dockerを使うあらゆる場面で必須です。本記事をブックマークしておけば、ポート競合に遭遇した時の対応が即座に可能になります。


本記事は2026年6月時点の情報をもとに、Ubuntu 22.04/24.04、macOS Sonoma/Sequoia、Windows 11、Docker 24.x での動作確認に基づき作成しています。OS・バージョンによってコマンドオプションが異なる場合があるため、ご利用の環境に応じてご確認ください。