firestarter は、
sudo apt-get install firestarter
インストール:
起動
ubuntu [ アプリケーション | インターネット | Firestarter ]
← 社内LAN
← ローカルLAN
下記設定をチェックしてください。
ポートを空ける
[イベント] タブをクリックして、[再読み込み] を押すと、ブロックされたポート番号が
表示されます。
許可する相手(ホスト)と、許可するサービスを、[ ルールの追加 ] ボタンで設定します。
ウィザードが起動したら、[ 保存 ] を押してください。
を編集する GUI の1つです。
/etc/host.allow ↓
↓ /etc/host.deny
マッチ
マッチしない
許可
拒否
マッチ
マッチしない
許可
許可
ALL : ALL
/etc/host.deny
すべて拒否
ALL : 192.168.0.0/255.255.255.0 : allow
/etc/host.allow
指定のサブネットを許可
tcpdchk -v
状況をチェック
参考
user1@ubuntu-vm:~$ tcpdmatch in.tftpd 192.168.150.129
client: address 192.168.150.129
server: process in.tftpd
access: granted
特定のクライアントからのチェック
への通知をフィルタ制御します。
には、TCP Wrappers と同じ機能があります。
/etc/init.d
TCP/IP の他のPCからポートに要求があったらプログラムを起動します。
プロセスを一覧します。 プロセスとして稼動しているサービスも表示します。
OS 起動時に、/etc/rc* にある初期化用シェルスクリプトを実行します。
ディレクトリに、カーネル・モジュールやサービスを起動したりするスクリプトが入っています。
root ユーザが実行するシェル・スクリプトです。
サービスのファイル名は、Linux のディストリビューションによって異なります。
サービスは、常駐するプロセスやデバイスフ・ァイルなどの類のもので、その開始や停止の動作は
サービスに所属するシェルスクリプトで記述します。
/sbin/init は、ブートローダーが初めて実行するプロセスの実行ファイルです。
init は、OS 起動時に、/etc/rc* にある初期化用シェルスクリプトを実行します。
多くは、サービスを起動する /etc/init.d* へのシンボリックリンクです。
BSD系init
System V 系の init
ランレベル
参考
id:runlevel:event:command
/etc/inittab ファイルの行のフォーマット
id
エントリの識別子(4文字まで)
runlevel
ランレベル。 234 は、ランレベル 2, 3, 4 という意味
event
command
実行するコマンド。 シェルと同じ構文
respawn
processで指定したプロセスを起動し、終了したら再起動する
wait
processで指定したプロセスを起動し、終了を待つ
/etc/inittab ファイルの event の項目には、以下のいずれかのイベントを指定します。
once
指定したランレベルへの移行後に1度だけ実行
initdefault
デフォルトランレベルの指定
sysinit
ブート時に実行するプロセス
powerfail
UPSが電源切断を検出したときに実行するプロセス
powerokwait
UPSが電源オンを検出したときに実行するプロセス
ctrlaltdel
[Ctrl]+[Alt]+[Delete]キーが押された場合
/etc/inittab ファイルの環境に従って、コマンドを実行します。
コメント行は、 # から始まります
ubuntu では、
ubuntu では、init ではなく、upstart による /etc/event.d/rc-default らしい
/etc/init.d/rc スクリプト・ファイル
/etc/init.d/rcS スクリプト・ファイル
参考
参考
(cache)
アクション(セクション)
サービス(セクション)
プロパティ
変数のようなものです。
init が実行できるコマンドの一覧が、readme.txt にあります。
トリガーが稼動したらコマンドを実行する関数のようなものです。
通常、ここではシステム全体に関して記述し、モジュールはサービスにします。
オプションで指定したイベントが発生すると、サービス(常駐プログラム)を起動する
スクリプトを実行します。 多くの場合、起動時に、default クラスのサービスを起動
するように、アクション(セクション)にコマンドが書いてあります。
critical
disable
setenv
socket
user
group
oneshot
class (指定しなければ default クラス)
onrestart
boot
<name>=<value>
device-added-<path>
device-removed-<path>
service-exited-<name>
トリガー:
コマンド:
exec
export
ifup
import
hostname
chdir
chmod
chown
chroot
class_start
class_stop
domainname
insmod
mkdir
mount
setprop
setrlimit
start
stop
symlink
sysclktz
trigger
write
オプション:
/system/bin/logwrapper サービス
service akmd /system/bin/logwrapper /sbin/akmd
指定したサービスの標準出力と標準エラー出力を logcat に出力します。
… /sbin/akmd の出力を logcat に出力するサービスの定義。
必要なければ、オプションは全く無くても構いません。
Android の init プロセスの設定は、/init.rc ファイルに記述します。
init.action
init.command
init.svc.<name>
searvice myserv /system/bin/myserv start
disable
例:
/system/bin/myserv start は、スクリプトを起動するコマンドラインです。
disable はオプションです。
sudo apt-get install sysv-rc-conf
インストール
OS 起動時に実行するサービス(起動スクリプト)の登録や削除をします。
chkconfig (service) off
起動スクリプトを管理する。「/etc/rc[0-6].d」ディレクトリの配下にある
シンボリック・リンク・ファイル(実体は「/etc/init.d」ディレクトリ配下)
の生成や変更・削除,各サービスの起動に関する設定をする。
chkconfig --list | less
サービスを一覧する:
サービスを起動しないようにする:
ディストリビュータによってコマンド名やインストール方法は異なります。
パラメータはすべて同じです。
RedHat
chkconfig
Debian
update-rc.d
SUSE
insserv
Ubuntu
sudo sysv-rc-conf
コマンド名
?
?
?
xinetd によって起動されるサービスは、
Ubuntu
RedHat
sysv-rc-conf --list | less
RedHat
の
dpkg -l | less
で、パッケージがインストールされているかも
チェックしてください
を参照してください。
/etc/init.d/(service) start
ls /etc/init.d
/etc/init.d/(service) stop
/etc/init.d/(service) restart
サービス一覧
サービス開始
サービス停止
サービス再起動
serviceコマンドは/etc/rc.d/init.d 以下のスクリプトを実行するだけの
コマンドですが、/etc/から入力する必要がなくなるので、結構便利です。
sudo apt-get install debian-helper-scripts
ubuntu でインストール:
sudo service (service) restart
sudo service (service) stop
サービスの開始、停止、再起動をします。
sudo service (service) start
ls /etc/init.d
サービス再起動
サービス停止
サービス開始
サービス一覧
参考
sudo を付けないと Permission Denied になります。
service などのコマンドが使えるようになります。
失敗したら、
の内容をチェックしてください。
また、
の中のスクリプトの内容をチェックしてください。
チェックするのは、
・スクリプトが読み込んでいるファイルのパス
・他
参考
/var/log/syslog
/etc/init.d/
成功したら、そのとき使った /etc/init.d/ スクリプトを退避しておくと、
バージョンアップしたときでも対処しやすいでしょう。
sudo を付けないと Permission Denied になります。
関連
→ socket (ソケット)
1つのマシンの中のプロセス間通信の1つ。
ソケット・オブジェクト(関数)は、LAN で使うソケットと同じ。
デバイス・ファイルと同様に、ファイルのパスを使って、接続ポイントを識別する。
このディレクトリの中に、デーモンの動きが記録されます。
ubuntu では、[ システム | システム管理 | システム・ログ ] で、記録が更新される様子が見えます。
0. 停止(Halt)
1. シングルユーザーモード
2
3
4
5
6. 再起動(Reboot)
S
ランレベルが異なると、プロセスが実行できる処理が異なる。
値が小さいほど、コアに近い処理が可能なように設定されている。
OS起動時にランレベル 0、1、〜 5 のスクリプトが起動します。
各ディストリビュータがどのように定義しているか
(man)
プロセスを一覧します。 プロセスとして稼動しているサービスも表示します。
ps aux
ps
カレントユーザの一般プロセスのみ
全プロセス
によって起動されるサービスのうち、まだ稼動していないものは表示されません。
その他は、man ページの EXAMPLES を参照
キーワード:
ps, プロセスID, pid, シグナル
$ ps
PID PPID PGID WINPID TTY UID STIME COMMAND
O 2464 1 2464 2464 ? 400 14:22:19 /cygdrive/c/Program Files/Poderosa/cygterm/cygterm
3184 2464 3184 3368 0 400 14:22:19 /usr/bin/bash
プロセスを一覧するには:
プロセスを強制終了するには(kill):
$ kill -s 9 <pid>
強制終了します。
プロセスにシグナルを送るには(kill):
pid へのアクセスをチェックするだけで、実際は送らない
SIGNULL
% kill -s (番号) (pid)
% kill -s (名前) (pid)
または
番号
名前
0
意味
SIGHUP
トラップ
-
可
1
終了
SIGINT
割り込み
可
2
可
コアダンプを出力して終了
SIGQUIT
3
強制終了
不可
SIGKILL
9
可
終了
SIGTERM
15
休止
不可
SIGSTOP
24
SIGTSTP
25
可
休止
再開
SIGCONT
26
?
$ ps aux | less
$ ps aux | grep svnserve
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
user1 7404 0.0 0.1 10984 940 ? Ss 01:18 0:00 svnserve -d
$ kill 7404
top
top - 10:47:43 up 83 days, 1:35, 1 user, load average: 0.26, 0.45, 0.49
Tasks: 65 total, 1 running, 64 sleeping, 0 stopped, 0 zombie
Cpu(s): 1.0% us, 0.3% sy, 0.0% ni, 98.7% id, 0.0% wa, 0.0% hi, 0.0% si
Mem: 127240k total, 124732k used, 2508k free, 2644k buffers
Swap: 1028152k total, 169640k used, 858512k free, 19112k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
CPU などの稼働状況を表示します。
参考
$ pstree
init---NetworkManager
|
---gdm-binary---gdm-simple-slav---Xorg
| | |---gdm-session-wor
| | |---gnome-session
| ---{gdm-binary}
---sshd-----sshd---bash---pstree
|--sshd---tcsh
起動中のプロセスの親子関係をツリー形式で表示します。
vold (ボリュームマネージャー)
自動的にマウントします。
eject コマンドで、フロッピーを取り出します。
参考
アプリケーション
参考
カーネル
ドライバー
ドライバー
/dev
/proc
ハードウェア
カーネルの情報
ドライバー操作
/proc ディレクトリの中にあるファイルにアクセスすることで、カーネルの情報を取得することができます。
/dev ディレクトリの中にあるファイルにアクセスすることで、ドライバーを操作することができます。
ドライバーは、カーネル用モジュール・ファイル(*.ko) であり、ELF形式の実行ファイルです。
で、ドライバーをカーネルにインストール(ロード)/アンインストール(アンロード)できます。
初期化はシステムの資源(I/O)を割り当てることになるので、
Linuxカーネルでは、できるだけ初期化を遅延する仕組みになっています。
ハードウェアの認識、一覧
コマンド (カーネル・モジュール)
カーネルにカーネル・モジュールをインストール/アンインストールします。
カーネルにモジュールをインストール(ロード)します。(非推奨)
カーネルからモジュールをアンインストール(アンロード)します。
カーネルにインストール済みのモジュールを一覧表示します。
カーネル・モジュール・ファイル(*.ko)を一覧して、依存関係などを調査します。
カーネル・モジュールのメモリ配置情報を一覧します。
カーネルにインストール済みのモジュールを一覧表示します。
参考
カーネル・モジュールをロード(カーネルにインストール)/アンロード(カーネルからアンイン
ストール)します。
sudo /sbin/modprobe module_a
if [ "$?" != "0" ]; then echo "module_a.ko failed to load." ;fi
カーネル・モジュールをカーネルにインストール(ロード)します。
if ! /sbin/modprobe -r module_a; then
echo "module_a.ko failed to unload." ;fi
カーネルからカーネル・モジュールをアンインストール(アンロード)します。
modprobe は、依存関係を考慮するため、insmod よりも推奨されています。
$ /sbin/modprobe -l
kernel/net/ipv4/esp4.ko
kernel/net/ipv4/ipcomp.ko
kernel/net/ipv4/xfrm4_tunnel.ko
kernel/net/ipv4/xfrm4_mode_beet.ko
kernel/net/ipv4/tunnel4.ko
カーネルにインストール(ロード)済みのモジュールのファイルを一覧表示する
ただし、新規にモジュールを追加するときは、modprobe を実行する(モジュールを起動する)
前に、depmod を実行する(モジュールをインストールする)必要があります。
関連
ロードしているカーネル・モジュールを一覧する
modprobe に指定するモジュール名は、カーネル・モジュール・ファイルのファイル名から、
拡張子(.ko) を除いたものになります。
/etc/init.d/sample