【 init 】コマンド/【 systemctl 】コマンド――CUI/GUIモードを切り替える:Linux基本コマンドTips(5) 本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「init」コマンドと「systemctl」コマンドです。
VagrantではSahara pluginを使うことで、VMの状態を以前の状態に巻き戻すことができます(sandobx mode)。 VMの中でいろいろいじっている際に変更前の状態に戻せるのはとても便利なのですが、Saharaでは戻せるチェックポイントをひとつしか作れません。 自分の場合、深遠なChefのレシピを書いている過程で、戻せるポイントを何個か置きたくなることがよくあります。 さて、VagrantのバックエンドとしてVirtualBoxを使っている人は多いかと思います。 バックエンドがVritualBoxの場合、SaharaのsandboxはVirtualBoxのsnapshotを使って実現されています。 VirtualBoxのsnapshotはひとつだけでなくいくつでも作ることができます。 CUIでVirtualBoxの操作(snapshotを作ったり)をするには、vboxma
Linux/Unixサーバにsshしている際、sshdを再起動したとする。 sshdは一度終了する訳だから、現在接続しているsshも切断されるかと思いきや、接続は継続する。 今まであまり気にしていなかったけど、この振る舞いについて調べてみた。 先ず、現象の確認から 対象サーバにssh接続し、sshdを再起動してみる。 $ ssh ryozo@192.168.56.12 # 対象サーバに接続 $ hostname centos1.example.jp $ sudo service sshd restart sshd を停止中: [ OK ] sshd を起動中: [ OK ] $ hostname centos1.example.jp sshdは一度停止されているにもかかわらず、対象サーバからは切断されていない。 プロセス構造から理由を探る sshdプロセスの構成 先ず、sshdプロセスの構
コンテナに関係する主要な機能2つの説明が済んだので、今回はLXCで使われることが多いネットワーク関連の機能を紹介しましょう。 コンテナとネットワーク名前空間 コンテナでのネットワークの使用と密接に関係するのが第2回で紹介したネットワーク名前空間です。 コンテナでネットワークを使用する場合、一般的にはネットワーク名前空間を作成します。そして、ホスト上に存在するネットワークインターフェースを、作成したネットワーク名前空間に割り当てます。そうすると、ホストや他のコンテナからは見えない、コンテナからだけ見えるネットワークインターフェースとなります。 もちろん、ネットワーク名前空間を作らなくてもコンテナは作れます。しかし、システムコンテナを使う場合、最近はupstartやsystemdといったソケットを使用するinitが使われることが多いので、ネットワーク名前空間をホストと分けておくのが普通です。
CentOS 7ではsystemdが導入されているので、サービスの管理が従来と大きく変わっています。詳しい解説はsystemd徹底入門のスライドを参照するとして、ここでは「前のコマンドはsystemdでどう入力するの?」というのだけ、簡単にまとめてみました。 サービス名にはsshdを指定していますが、もちろん任意のサービスが指定できます。 サービスの起動、終了など 操作SysV InitSystemd 起動/etc/init.d/sshd startsystemctl start sshd 終了/etc/init.d/sshd stopsystemctl stop sshd 強制終了PID探してkill -9systemctl kill -s 9 sshd 再起動/etc/init.d/sshd restartsystemctl restart sshd 設定反映/etc/init.d/s
サーバ管理ツールのエージェント みたいなソフトウェアをインストールしやすくするために、rpm / deb パッケージを作りたい。 しかし、rpm / deb パッケージ化するためには、それぞれ CentOS(RedHat)、Debian(Ubuntu) 環境でパッケージ化することになる。 社内ではこれまでパッケージ化の専用ホストがいて、そこで spec ファイルや init スクリプトを置いて rpmbuild コマンドとか debuild コマンドを叩いてパッケージを作成していた。 さらに、アプリケーションエンジニアからインフラエンジニアに依頼するという形をとっていた。 この方法の問題点として、以下の3つがある。 spec ファイルや init スクリプトなどをプロジェクトの Git リポジトリで管理しづらい。つまり、レビューとかがやりにくい。 リリースフローを自動化しづらい。具体的には
Pythonではクラスを定義しそれを作成する(インスタンス化)ことができます。クラス化する事によって様々な恩恵を得ることができ、プログラミングの幅も広がります。 クラスの基礎 classと記述し、後にクラス名が続きます(今回の例ではTestClassがクラス名になります)。クラス名の後には必ず「 : 」(コロン)を付けましょう。 class TestClass: def __init__(self, code, name): self.code = code self.name = name classes = [] classes.append(TestClass(1, 'テスト1')) classes.append(TestClass(2, 'テスト2')) for test_cls in classes: print('===== Class =====') print('code
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く