developppのblog

木下やま人の技術メモ

カテゴリ: Linux

ファイル・システムをマウントする。
マウントとは、あるパーティションとあるディレクトリを関連づける作業のこと。
マウント作業により,デバイス上のファイル・システムをディレクトリの1つとして使用できる。
マウント作業はスーパーユーザー権限がないと行えないが,/etc/fstab/での設定次第では通常のユーザーでのマウントも可能。
このマウントにより、そのパーティションにファイルやディレクトリを作成したり、利用することができるようになります。
windowsでいうショートカットです。

コマンド
mount [オプション] [マウント元] [マウント先ディレクトリ]


オプション
-a /etc/fstabに記述されているファイル・システムをマウントする。ただし,noautoのファイル・システムはマウントから除外される
-n マウントをする際,/etc/mtabに情報を書き込まない
-r ファイル・システムを読み込み専用でマウントする
-w ファイル・システムを読み書き可能な状態でマウントする
-v マウントの詳細を表示する
-t vfstype ファイル・システムのタイプを指定する。指定できるファイル・システム・タイプは別表を参照
device マウントするデバイスを指定する
position ファイル・システムをマウントする場所を指定する
オプション
ext2 Linux標準のファイル・システム
ext3 ext2にジャーナリング機能を付加したファイル・システム
ReiserFS ジャーナリング機能を持ったファイル・システム
xfs ジャーナリング機能を持ったファイル・システム
msdos MS-DOSファイル・システム
vfat Windows95のファイル・システム
iso9660 ISO9660準拠のファイル・システム(一般的なCD-ROMの形式)
udf ユニバーサル・ディスク・フォーマット・ファイル・システム(主にDVDに利用される)
nfs ネットワーク・ファイル・システム
samba Windowsのネットワーク共有のファイル・システム

シェルの書き方
#!/bin/sh
または
#!/usr/bin/sh

必ずシェルの1行目に記述する。
「#!」以後に書かれたプログラムでスクリプトを実行するという意味です。

シェルの実行
chmod u+x shell.sh

シェルを実行するには、ファイルに実行権限を付与する必要があります。
./shell.sh

シェルの実行。環境変数「$PATH」に「.」を記述していない場合は、ファイル名の前に「./」を記述する必要があります。

処理時間の長いジョブを実行中のときnohupをなしだと途中で終了してしまう恐れがあるため放置できないかと思います。
ジョブ実行後にバックグランドにする方法です。

コマンド
1../shell.sh

 ジョブ実行
2. Ctrl+z

 中断
3.jobs

 ジョブの確認
4.disown

  ログアウトしても実行されるようにする続きを読む

シェルスクリプトなどを実行中にSSH接続を切断(Tera Termやputtyなど)、ターミナル エミュレータの終了、OSからログアウトをするとジョブが死んでしまいます。

バックグラウンド ジョブを起動したプロセス(ログイン シェル)が子プロセスである該当のバックグラウンドジョブをハングアップ シグナル( HUP )によって終了させるためです。

シェルスクリプトを起動した親プロセスは子プロセスの終了状態を監視しています。
なのでログアウトして親プロセスであるシェルが終了すると子プロセスはゾンビ プロセスとなってしまうため親プロセスとなるシェル(ログインシェル)は子プロセスであるバックグラウンド ジョブを kill ( kill -HUP ) するのです。

コマンド
nohup コマンド &



1.オプションなし
nohup ./shell.sh &


shell.sh の標準出力、標準エラー出力に送られたデータはプログラムを実行したディレクトリに nohup.out というファイル名で保存される。
プログラムを実行したディレクトリに書き込み権限が無ければ $HOME/nohup.out に保存される。

2.標準出力先の指定
nohup ./shell.sh > out.log &


shell.sh の標準出力が out.log になる。
標準エラー出力は nohup.out で保存先は例1と同様にプログラムを実行したディレクトリか $HOME になる。

3.標準エラー出力先を指定する
nohup ./shell.sh > out.log 2> err.log &

shell.sh の標準出力が out.log になる。
標準エラー出力は err.log となる。
続きを読む

↑このページのトップヘ