Solaris のシステム管理 (資源管理とネットワークサービス)

プロジェクト管理の例

プロジェクトを定義して現在のプロジェクトを表示する方法

次の例は、projadd および projmod コマンドを使用する方法を示します。

  1. スーパーユーザーになります。

  2. システムのデフォルトの /etc/project ファイルを表示します。


    # cat /etc/project
    system:0::::
    user.root:1::::
    noproject:2::::
    default:3::::
    group.staff:10::::
  3. booksite というプロジェクトを追加し、追加したプロジェクトを mark という名前のユーザーにプロジェクト ID 番号 4113 で割り当てます。


    # projadd -U mark -p 4113 booksite
    
  4. 再度 /etc/project ファイルを表示し、プロジェクトが追加されていることを確認します。


    # cat /etc/project
    system:0::::
    user.root:1::::
    noproject:2::::
    default:3::::
    group.staff:10::::
    booksite:4113::mark::
  5. comment フィールドにプロジェクトを説明するコメントを追加します。


    # projmod -c `Book Auction Project' booksite
    
  6. /etc/project ファイルに加えた変更を確認します。


    # cat /etc/project
    system:0::::
    user.root:1::::
    noproject:2::::
    default:3::::
    group.staff:10::::
    booksite:4113:Book Auction Project:mark::

/etc/project ファイルからプロジェクトを削除する方法

次の例は、projdel コマンドを使ってプロジェクトを削除する方法を示します。

  1. スーパーユーザーになります。

  2. projdel コマンドを使ってプロジェクト booksite を削除します。


    # projdel booksite
    
  3. /etc/project ファイルを表示します。


    # cat /etc/project
    system:0::::
    user.root:1::::
    noproject:2::::
    default:3::::
    group.staff:10::::
  4. ユーザー名 mark でログインし、projects と入力して、割り当てられているプロジェクトを表示します。


    # su - mark
    # projects
    default

ユーザーおよびプロジェクトのメンバーシップ情報を取得する方法

-p フラグを付けて id コマンドを使用し、起動中のプロセスの現在のプロジェクトメンバーシップを表示します。


$ id -p
uid=100(mark) gid=1(other) projid=3(default)

新しいタスクを作成する方法

  1. スーパーユーザーになります。

  2. システムのタスク ID を取得するための -v (冗長) オプションを付けた newtask コマンドを使用して、booksite プロジェクトに新しいタスクを作成します。


    # newtask -v -p booksite
    16

    newtask を実行すると、指定したプロジェクト内に新しいタスクが作成され、そのタスクにユーザーのデフォルトのシェルが置かれます。

  3. 起動中のプロセスの現在のプロジェクトメンバーシップを表示します。


    # id -p
    uid=100(mark) gid=1(other) projid=4113(booksite)

    今度は、プロセスが新しいプロジェクトのメンバーになっています。

実行中のプロセスを新しいタスクに移動する方法

次の例は、実行中のプロセスを別のタスクとプロジェクトに関連付ける方法を示します。このタスクを実行するには、スーパーユーザーでなければなりません。または、プロセスの所有者で、かつ新しいプロジェクトのメンバーでなければなりません。

  1. スーパーユーザーになります。

  2. book_catalog プロセスのプロセス ID を取得します。


    # pgrep book_catalog
    	8100
  3. プロセス 8100 を、新しいタスク ID を使って booksite プロジェクトに関連付けます。


    # newtask -v -p booksite -c 8100
    	17

    -c オプションは、newtask が指定された既存のプロセスに対して動作することを指定します。

  4. タスクとプロセス ID の対応を確認します。


    # pgrep -T 17
    	8100