6.1、Linuxプログラムの全体的な考え方
initプロセスは、Linuxカーネルによって開始される最初のプロセスです。それ以降のすべてのプロセスの開始者です。このシステムのinitプロセスはrcプロセスへのリンクであるため、rcプロセスがメインプロセスで、最初にカーネルに入るプログラムが実行され、最初にメインプロセスプログラムで他の子プロセスが開始されます。待機処理シグナルを中断します。
子プロセスはメインプロセスに通知し、メインプロセスは特定のシグナルを受け取り、何かをするために何かをするか、他の子プロセスを開始または終了します。さらに、一部のプロセスはソケットソケットを介して通信します。
プロセスによっては、プログラムが1回実行されて終了するものもあります。
6.1、rcプログラム
メインシーケンスはrc、init、ip-up、ip-down、dtu-dns、start_watchdog、start-lan、stop-lan、start_timerなどです。プロセスはrcへの接続です。これらのプロセスを実行するとき、rcプロセスはプロセスパラメータに基づいて実行するハンドラを決定します。
initインジケータが実行されると、RCメインループ実行に入ります。
6.3、初期化ランタイム環境
メインループには、初期化の以下の部分が含まれます。
1、システム初期化
マウントシステム関連ディレクトリ
すべてのデバイスノードの生成
フラッシュパーティション関連ディレクトリのマウント
パラメータファイルへのリンクの作成
関連ディレクトリの作成
デバイスパラメータの初期化
コンソールの初期化
カーネルモジュールのロード
タイムゾーンの設定、システム時刻、ハードウェアの同期
組み込みのハードウェアウォッチドッグの起動
外部ハードウェアウォッチドッグブート
2、GPIO初期化
関連するインジケーターを消し、モジュールの電源を入れ、サブボードの電源を切ります。
未使用のGPIOを消します
ドーターボードの電源を入れます。
各モジュールを初期化します。
3. LANの電源を入れます。
4.信号を初期化します。
信号を初期化します。
登録信号
5、設定ファイルの初期化
PPPダイヤリング関連の設定ファイル
DTUパラメータ設定ファイル
ネットワークコントローラパラメータ設定ファイル
電話またはSMSトリガー設定ファイル
ICMP検出設定ファイル
DNS検出設定ファイル
DDNSパラメータ設定ファイル
メンテナンスチャネルパラメータ設定ファイル
6.4、さまざまなプロセスの実行
1. TCPローカルサーバを開く
図:
図6.2ローカルサーバーのプロセスフローチャート
2、さまざまなサービスを開く
Httpdサーバーを開く
DTUクライアント接続を開く< Br>
Dhcpdサービスが有効になっています
Telnetサービスが有効になっています
重複プロセス数の監視が有効になっています
トラフィック統計が有効になっています
6.5 PPPDプロセスが正しいことを確認します
を実行する1. pppdを実行する前に、まずモジュールインタフェースを正常に開くことができるかどうかを確認し、例外が発生した場合はシステムを再起動します。
2. pppdを実行した後、1秒ごとに/tmp /ppp /linkファイルを生成するかどうかを判断し、タイムアウト時間内に生成されない場合は、もう一度ダイヤルします。
3、モジュールをリセットするためにpppdを再実行する前に、最後に実行されたpppdが終了しないようにpppd接続を切断してください。
4、pppdのダイヤルアップが正常にネットワークテスト機能を開き、pppd自体がドロップを検出できないのを避けるため。
6.6、ループ処理への実行
メインプログラムが初期化された後、関連サービスはメインループ処理に入り始め、メインループは回線をダイヤルし始め、オンライン処理の後、最後にアイドル状態になりますイベントシグナルを待ちます。メインループは主にPPPDとWANの異常の有無を監視しており、異常があれば該当する処理を実行します処理の流れは次の図のようになります。
6.3メインプロセスのメインループのフローチャート
フローチャートからわかるように、メインループはステートマシンです。プロセスがシグナルを送信すると、シグナル処理関数は状態値を変更し、メインループはIDLE状態からジャンプしてRESTARTまたはSTOP状態に戻り、再びループして、最後にアイドル状態に安定します。 PPPDがオフラインになったときにip-downプロセスを実行するのが一般的で、プロセスはメインプロセスにシグナルを送信し、メインプロセスはRESTART状態になります。メインプログラムはダイヤル処理を再実行します。
6.7。シグナルの使用
シグナルは、特定の状況に応じてUNIXおよびLinuxシステムによって生成されるイベントであり、シグナルを受信したプロセスはそれに応じて何らかのアクションを実行します。通常、シグナルはエラーによって生成されます。しかし、プロセス間の通信や動作の変更を行う方法として、プロセス間で明示的に送信することもできます。信号の生成は生成と呼ばれ、信号はキャプチャと呼ばれます。
ヘッダーファイルをインクルードする必要があります。#include< signal.h>
シグナルの使用方法は次のとおりです。
1.シグナルを登録します。
例:signal(SIGHUP、rc_signal);
2.シグナル処理関数。
static void rc_signal(int sig)
{
……
if(sig == SIGHUP){
Syslog(6、「シグナリングRESTART \\ n」);
signal = RESTART;
}
……
}
3.シグナルの送信
メインプロセスへのシグナルの送信:kill(1、SIGHUP);
Ubuntuは良いLinuxオペレーティングシステムですが、それをインストールしたばかりの初心者にとっては、Ubuntuを使ってネットワークに接続する方法は非常に困難です。 Ubuntuの下であなた自
1.bridged(ブリッジモード)&LT:Linux仮想マシンのネットワークとリモートログイン管理
あなたは2つの仮想NICのうち、仮想マシンをインストールした後の3種類&#65533;&QUOT; HTTP://www.2cto.com/kf/ware/vc/"ターゲット=&QUOT;
linuxシステム - ファイル共有ファイル共有の前提1ウィンドウとlinux pingパステスト方法次のとおりpingパス2 linuxファイアウォールオフ/etc/init.d/iptables
用Uディスクブートと基本原則の手動作成成功した生産の後の基本的なミニマリストのディレクトリファイル まず、システムの基本的な起動プロセス: isolinux.binが正常に実行された後、システム