現在お買い物カゴには何も入っていません。
タグ: server
プロセス管理
pgrepとは
プロセス名やその他の属性に基づいてプロセスを検索するコマンドラインツールです。
pgrep -u root sshd # rootユーザーが実行しているsshdプロセスを検索
pkillとは
pkill -u username # 特定ユーザーの全プロセスを終了 pkill firefox # プロセス名がパターンに一致する場合にSIGTERM
psとは
現在実行中のプロセスに関する情報を表示するコマンドラインツールです。
ps aux # 全ユーザーの全プロセスを詳細表示
killとは
プロセスIDを指定してプロセスにシグナルを送信するコマンドラインツールです。
kill -9 1234 # プロセスID 1234のプロセスを強制終了
主要なオプションには以下があります:
-9
(SIGKILL): プロセスを強制終了します。プロセスは即座に終了し、クリーンアップ処理を行う機会がありません。-15
(SIGTERM): デフォルトのシグナルで、プロセスに正常終了を要求します。-1
(SIGHUP): プロセスに設定の再読み込みを要求します。
例:
kill -9 1234
はプロセスID 1234のプロセスを強制終了します。fg, bg, jobsの使い方
これらのコマンドはジョブ制御に使用されます。
これらのコマンドを使用することで、複数のジョブを効率的に管理し、シェル上での作業を柔軟に行うことができます。
jobs
jobs
コマンドは、現在のシェルセッションでバックグラウンドで実行されているジョブのリストを表示します。$ jobs [1] + running sleep 100 & [2] - running nano file.txt
fg
fg
コマンドは、バックグラウンドジョブをフォアグラウンドに移動します。$ fg %1 # ジョブ番号1をフォアグラウンドに移動
bg
bg
コマンドは、一時停止されたジョブをバックグラウンドで再開します。$ sleep 100 ^Z [1] + 18653 suspended sleep 100 $ bg [1] + 18653 continued sleep 100
キー操作
ジョブをバックグラウンドで実行する方法には、主に2つあります:
- コマンド実行時にバックグラウンドで起動する
- 実行中のジョブをバックグラウンドに移動する
コマンド実行時にバックグラウンドで起動する
コマンドの末尾に `&` を付けることで、そのコマンドをバックグラウンドで実行できます。
$ sleep 100 & [1] 12345
この場合、
sleep 100
コマンドがバックグラウンドで実行され、ジョブ番号と プロセスID が表示されます。実行中のジョブをバックグラウンドに移動する
実行中のジョブをバックグラウンドに移動するには、以下の手順を踏みます:
- 実行中のジョブを一時停止する:
Ctrl + Z
キーを押します。 - 一時停止したジョブをバックグラウンドで再開する:
bg
コマンドを使用します。
$ sleep 100 ^Z [1] + 12345 suspended sleep 100 $ bg [1] + 12345 continued sleep 100
この操作により、フォアグラウンドで実行していたジョブをバックグラウンドに移動できます。
^Z
とあるのはCtrl + Z
キーのことです。その他のキー操作
Ctrl + C
: フォアグラウンドで実行中のジョブを終了します。Ctrl + D
: 標準入力の終了(EOF)を送信します。多くのプログラムはこれにより終了します。
これらのキー操作と
jobs
、fg
、bg
コマンドを組み合わせることで、効率的にジョブを管理できます。バックグラウンドジョブの使用により、複数のタスクを同時に実行しながら、シェルの対話的な使用を継続できます。texinfoとman pageの概要
Texinfoとは
Texinfoは、単一のソースファイルから複数の形式(オンラインドキュメントや印刷用出力)を生成できるドキュメンテーションシステムです。主にソフトウェアのドキュメント作成に使用されます。
man pageとは
man page(マニュアルページ)は、Unixライクなオペレーティングシステムで使用される、コマンドラインツールやシステム関数のリファレンスマニュアルです。
Texinfoの使い方
- Texinfoソースファイルの作成
makeinfo
コマンドでHTML、Info、またはPDF形式に変換- 生成されたドキュメントの配布や公開
texinfoはGNUプロジェクトの公式ドキュメンテーションシステムであり、Emacsと深い関わりがあります。Emacsは texinfoファイルを編集・閲覧するための機能を内蔵しており、Info modeを使用してtexinfo形式のドキュメントを直接閲覧できます。また、Emacsのドキュメントもtexinfoで書かれています。
使い方は以下のコマンドで表示できます:
man texinfo
man pageの使い方
man
コマンドの基本構文:man [セクション] コマンド名
- よく使用されるセクション(1: ユーザーコマンド、5: ファイルフォーマット)
- man pageの構造(NAME、SYNOPSIS、DESCRIPTION等)
日本語のパッケージは以下のコマンドでインストールします1:
sudo apt install manpages-ja manpages-ja-dev
man pageは通常、8つのセクションに分かれています2が、そうでない場合もあります。
man man
で表示できます。次のコマンドでも概要を読めます。man 1 intro man 2 intro man 3 intro man 4 intro man 5 intro man 6 intro man 7 intro man 8 intro
特定のセクションのman pageを参照するには、
man [セクション番号] [コマンド名]
の形式で指定します。DebianとUbuntuのサーバ管理コマンド
Debian リファレンスにサーバ管理の基本情報が記されています。
以下に説明するシェルコマンドはGNOME 端末(GNOME Terminal)等の端末エミュレータ、或いはコンソールで実行します。
Tabキーで入力補完出来ます。複数のコマンドを区切るのはセミコロンです。
DebianとUbuntuは同じDebian系ディストリビューションであるため、多くのコマンドが共通しています。以下に主要なコマンドを説明します。
root権限
Debianではrootユーザとパスワードが設定されますので、管理者権限の必要なコマンドはrootアカウントに切り替えて実行します:
su -l
Ubuntuではroot権限にはsudoを使用します。sudoに続けてコマンドを入力し、enterを押します。続けてアカウントのパスワードを入力します。sudo実行権限を付与されているアカウントでログインしていることが前提です。カレントディレクトリを移動せずに何度もコマンドを実行したい場合は以下のようにします:
sudo -H -s
OSの停止と再起動
システムの停止
以下の何れかのコマンドを実行します1:
sudo shutdown -h now sudo poweroff
システムの再起動
以下の何れかのコマンドを実行します:
sudo shutdown -r now sudo reboot
サービスの管理
DebianとUbuntuの新しいバージョンでは、systemdを使用してサービスを管理します。「メモリー中の全 サービス unit のリスト」を得るには次のようにします:
systemctl list-units --type=service
サービスの起動:
sudo systemctl start <service-name>
サービスの停止:
sudo systemctl stop <service-name>
サービスの再起動:
sudo systemctl restart <service-name>
サービスの状態確認:
sudo systemctl status <service-name>
古いバージョンのDebian/Ubuntuでは、
service
コマンドも使用できます:sudo service <service-name> start/stop
その他の有用なコマンド
システム情報の表示:
uname -a
ディスク使用量の確認:
df -h
メモリ使用量の確認:
free -h
プロセス一覧の表示:
top
または(要インストール):
htop
これらのコマンドを使用することで、DebianやUbuntuのサーバを効率的に管理することができます。サーバーの運用には適切な権限と注意が必要です。重要な操作を行う前には、必ずバックアップを取ることをお勧めします。