Linuxコマンドのkillall

killall [オプション] [-signal(シグナル)] [name] killallは指定された名前のすべてのプロセスにシグナルを送信します。シグナルが指定されていない場合、デフォルトでSIGTERMが送信されます。シグナルは名前または数字で指定可能ですが、シグナル0(プロセス存在確認)は数字でのみ指定可能です。 コマンド名にスラッシュ(/)が含まれる場合、その特定ファイルを実行中 ...

8月10日 03:34 投稿

Linuxのプロセス管理とサービス管理

1. プロセス管理 1.1 概要 プロセスは実行中のプログラムまたはコマンドです。 各プロセスは独立して動作し、独自のアドレス空間を持ち、システムリソースを消費します。 開発中によく出会う問題にはポートの占有、プログラムのフリーズ、応答停止があります。 1.2 システムのプロセスを確認する psコマンドを使用します。 情報 説明 UIDユーザーID PIDプロセス ...

8月7日 02:37 投稿

LinuxのexecコマンドとPythonのexec関数の違い

LinuxのexecコマンドとPythonのexec関数の違い Linuxにおけるexecは現在のプロセスを置き換えるためのコマンドであり、Pythonにおけるexecは動的にコードを実行するための関数です。これらは異なる用途と構文を持っています。以下にその主な違いと、なぜそのような設計が必要なのかを説明します。 Linuxのexecコマンド 用途 Linuxでは、execコマンドは現在のシェルプロ ...

7月27日 00:46 投稿

Qt GUIでROS 2 Pythonノードを起動・停止する方法

ROS 2では通常、ros2 runやros2 launchコマンドを用いてノードを起動しますが、QtのGUIボタンからノードのライフサイクルを管理することも可能です。以下では、Qtのシグナル/スロット機構を使ってPythonで記述されたROS 2ノードを起動・終了する実装例を示します。 1. プロセス管理に必要なLinuxコマンド ノードの死活監視と強制終了に次のコマンドを利用します。 # プロ ...

7月26日 03:59 投稿

Linuxプロセスの基礎概念とメモリ管理

オペレーティングシステムの役割 オペレーティングシステム(OS)はハードウェアとアプリケーションの間で動作する基盤ソフトウェアです。主な機能は以下の通り: ハードウェアドライバを通じて物理デバイスを管理 システムコールを介してアプリケーションにサービスを提供 リソースの効率的な配分と保護を実現 システムコールとライブラリ関数 システムコールはカーネ ...

7月22日 17:13 投稿

SpringBootとActiviti7によるワークフロー実装ガイド

SpringBootとActiviti7の連携 <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-spring-boot-starter</artifactId> <version>7.1.0.M4</version> </dependency> <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-engine</artifac ...

7月20日 16:24 投稿

Linuxにおけるプロセス置換の原理と実装

プロセス置換の基本概念 プロセス生成後、親プロセスと子プロセスは同じコード領域を共有します。この状態では、子プロセスは親プロセスのコードのみを実行可能です。 しかし、実際のニーズでは、子プロセスが親プロセスとは異なるコードを実行できるようにする必要があります。これにより、両プロセスが異なるタスクを実行できるようになり、処理効率が向上します。 プロ ...

7月18日 01:25 投稿

Linuxプロセス管理とタスクスケジューリングの基本

プロセス管理:ps、top タスクスケジューリング:crontab プロセス管理の概念 プロセスとは、独自の仮想アドレス空間内で実行される独立したプログラムです。 プログラムとプロセスの違い:プログラムは静的なコマンドの集合であり、システムのリソースを消費しません。一方、プロセスは常に変化する動的なもので、システムのリソースを使用します。1つのプログラムから複 ...

7月13日 00:48 投稿

Linuxプロセスの管理とスケジューリング

プロセスの終了とリソース解放 プロセスが終了する際、プログラム情報やタスク構造体(task_struct)内の退出コードが保持されます。OSはこの情報を管理し、ユーザが後でアクセスできるようにします。 struct Task { int exit_code; // その他の属性 }; ゾンビプロセスについて ゾンビプロセスは、親プロセスが子プロセスの退出情報を回収しない場合に発生しま ...

6月8日 23:50 投稿

UNIXシステムにおけるfork関数の仕組み

UNIXまたは類似OSにおいて、forkはプロセスを2つのほぼ同一のプロセスに分けるシステムコールである。この関数により、実行中のプログラムが2つのプロセスに分割され、それぞれが同じコード位置から実行を開始する。両方のプロセスは、fork()の次の命令から継続して動作する。 ソースコードをコピーし、独自に開発することで異なるソフトウェアを作成する行為は、バージョ ...

6月8日 20:44 投稿