約 3,727,593 件
https://w.atwiki.jp/ohmichi_linux/pages/23.html
libvirtd デーモンについて libvirtd は、以下のように 7 つのスレッドから構成されている。 [root@linux-sv ~]# ps -LC libvirtd PID LWP TTY TIME CMD 1435 1435 ? 00 00 00 libvirtd 1435 1436 ? 00 00 10 libvirtd 1435 1438 ? 00 00 01 libvirtd 1435 1439 ? 00 00 01 libvirtd 1435 1442 ? 00 00 01 libvirtd 1435 1443 ? 00 00 01 libvirtd 1435 1444 ? 00 00 01 libvirtd [root@linux-sv ~]# 各スレッドの役割を調べる。 pthread_create() の呼び出し箇所をチェックする。 libvirtd としては、qemudStartWorker()/libvirt と qemudStartEventLoop()/libvirt しかない。
https://w.atwiki.jp/bambooflow/pages/11.html
Bluetooth通信 最近、nokia6680を購入したのでBluetooth通信ができないか試してみた。 環境 ディストリビューション Vine Linux 3.2 (Kernel 2.4.31-0vl1.8) Bluetoothアダプタ LDT-UA200C1, BT-UD1 端末 Nokia 6680 インストール PCにBluetoothアダプタを差したところ以下のようなメッセージが返ってきた。 $ dmesg hub.c new USB device 00 07.2-1, assigned address 9 usb.c USB device 9 (vend/prod 0xa12/0x1) is not claimed by any active driver. BlueZ HCI USB driver ver 2.7 Copyright (C) 2000,2001 Qualcomm Inc Written 2000,2001 by Maxim Krasnyansky maxk@qualcomm.com usb.c registered new driver hci_usb Kernel 2.4.31ではすでにBluetoothカーネルモジュールが組み込まれているようだ。しかしながら、設定するためのユーティリティはインストールされていないのでダウンロードしてくる必要がある。 とりあえず、必要なものはbluez-libsとbluez-utilsっぽい。 どちらも展開して./configure, make, make installした。 設定 usbのbluetoothデバイスを扱う場合は、次を行う。 # modprobe bluetooth # modprobe hci_usb # modprobe l2cap bluetoothとhci_usbは、usbを差した時点で自動的にロードされるみたいなので、私の場合は、l2capだけやった。 # hciconfig hci0 Type USB BD Address 00 00 00 00 00 00 ACL MTU 0 0 SCO MTU 0 0 DOWN RX bytes 0 acl 0 sco 0 events 0 errors 0 TX bytes 0 acl 0 sco 0 commands 0 errors 0 これだとまだ起動していない。 起動するには、 # hciconfig hci0 up すると、次のように変化する。bluetoothのアドレス"XX XX XX XX XX XX"が変化する。 # hciconfig hci0 Type USB BD Address 00 10 20 30 40 50 ACL MTU 384 8 SCO MTU 64 8 UP RUNNING RX bytes 71 acl 0 sco 0 events 8 errors 0 TX bytes 27 acl 0 sco 0 commands 7 errors 0 詳細に表示する場合は、-a を付ける。 # hciconfig -a hci0 Type USB BD Address 00 10 20 30 40 50 ACL MTU 384 8 SCO MTU 64 8 UP RUNNING RX bytes 71 acl 0 sco 0 events 8 errors 0 TX bytes 27 acl 0 sco 0 commands 7 errors 0 Features 0xff 0xff 0x8f 0xfe 0x9b 0xf9 0x00 0x80 Packet type DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 Link policy Link mode SLAVE ACCEPT Name CSR - bc4 Class 0x000000 Service Classes Unspecified Device Class Miscellaneous, HCI Ver 2.0 (0x3) HCI Rev 0x7a6 LMP Ver 2.0 (0x3) LMP Subver 0x7a6 Manufacturer Cambridge Silicon Radio (10) # hcitool scan Scanning ... 00 12 34 56 78 9A Nokia 6680 # sdptool browse 00 12 34 56 78 9A とりあえず、携帯から見えるようにする設定。 # vi /etc/bluetooth/hcid.conf 下の方にサンプルあり。 # hcid - もしくは # hcid -f /etc/bluetooth/hcid.conf # hciconfig hci0 piscan auth これで、携帯から検索かけると見つかるかも。 # hciconfig -a hci0 Type USB BD Address 00 10 20 30 40 50 ACL MTU 384 8 SCO MTU 64 8 UP RUNNING PSCAN ISCAN AUTH RX bytes 26800 acl 25 sco 0 events 1044 errors 0 TX bytes 2447 acl 24 sco 0 commands 276 errors 0 Features 0xff 0xff 0x8f 0xfe 0x9b 0xf9 0x00 0x80 Packet type DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 Link policy RSWITCH HOLD SNIFF PARK Link mode SLAVE Name BlueZ (0) Class 0x100104 Service Classes Object Transfer Device Class Computer, Desktop workstation HCI Ver 2.0 (0x3) HCI Rev 0x7a6 LMP Ver "UP RUNNNING"のところが、PSCAN,ISCAN,AUTHがあることに注目する。 編集中
https://w.atwiki.jp/rinn/pages/23.html
□Linuxでisoファイルを作成する。 Linuxの標準コマンドを利用して、isoファイル(CDイメージファイル) が作成できます。 CD-ROMを挿入してから、下記のコマンドを実行してください。 dd if=/dev/cdrom of=diskxxx.iso of=が、isoファイル名です。任意に指定してください。 成功すると、VMwareなどでマウント可能なisoファイルが生成されます。
https://w.atwiki.jp/hz2467/pages/23.html
GEANT3の計算をさせるとこんなエラーが出てhbファイルが作られない。。 ERROR in HROUT Current Directory must be a RZ file ここで強制終了。理由わからず。できたhbファイルもファイルサイズが0なので失敗してる模様。 と思ったらそこまでいかずにフリーズする。。なぜ。 PAW起動時にこんなエラーが出る場合 ERROR in IOPWK Can t open DISPLAY ERROR in IACWK Workstation is not open ERROR in ISWKWN Invalid workstation window parameters ERROR in ISWKVP Invalid workstation window parameters 多分X windowがちゃんと起動してない。 うちの場合はXmingのXlaunchなので、sshコマンド時に ssh -X xx@aaaaa.ac.jp みたいに-X引数をしっかり入れてやればいけた。
https://w.atwiki.jp/linux2ch/pages/33.html
Mageia に関するFAQ Mageia 一般とそのインストールに関するFAQです。 Mageia に関するFAQ Mageia とは何ですか? サードパーティのレビュー記事 Mageia のウェブサイトはどこですか。 公式ウェブサイト Mandriva Linux の特徴や以前のバージョンとの違いは何ですか。(比較一覧) 公式マニュアル (Documentation) を入手したい。 サポート情報について 公式メーリングリストの利用について Mageia Cauldron とは何ですか? Mageia のリリースロードマップはどのようになっていますか。 ダウンロード / ミラーサイト (Downloading / Mirrors) フル版(Free Software-only) LiveCD版 インストール方法やその直後のトラブル等に関すること 日本語入力を有効にする GNOME 環境で日本語が入力できない ネットワークインストールを行いたい。 アップグレード・インストールできますか? アップデート(更新)しません。 2ch Linux 板 スレッド Mageia とは何ですか? Mageia は、Mandriva Linux から派生した新しいディストリビューションです。Mageia は「マゲイア」と読みます。Mandriva Linux は、フランスに本部を置く Mandriva 社によって開発された商用のデスクトップ Linux ディストリビューションで、リテール版の売上高で世界一を誇っていました。 Mandriva Linux の旧名、Mandrake Linux が初めてリリースされたのは 1998 年 7 月のことであり、当時は Red Hat Linux (バージョン 5.1) と KDE (バージョン 1.0) をベースとしたものでしたが、その後多くの開発が加えられた結果、独自ディストリビューションへと発展しました。従来、 Mandrakelinux あるいは Mandrake Linux と(開発当初は Linux Mandrake とも)表記されていましたが、商標権の問題とその後のブラジルの Conectiva 社との合併のため、 2005年4月7日に正式発表された社名変更によって、 Mandriva Linux となりました。Mandriva Linux - フリー百科事典『ウィキペディア』 も、Mandriva Linux の概要を知るには適切なページです。 Mageia(マゲイア)とはギリシャ語で「魔術」を意味します。Mandriva の旧名 Mandrake の由来とされているマジシャン「Leon Mandrake」や漫画「Mandrake the Magician」にちなんだネーミングと思われます。 2011/02/15に最初のアルファ版がリリースされました。 サードパーティのレビュー記事 Mandrivaからフォークした「Mageia」、初の正式版リリース http //sourceforge.jp/magazine/11/06/03/0419250 Mageia のウェブサイトはどこですか。 Mageia 関連のウェブサイトには、次のものがあります。 公式ウェブサイト 公式サイト https //mageia.org/ Mageia Blog https //blog.mageia.org/en/ Mageia (mageia_org) on Twitter https //twitter.com/mageia_org Mandriva Linux の特徴や以前のバージョンとの違いは何ですか。(比較一覧) 各パッケージのバージョンについては、DistroWatch.com を参照してください。 リリースノートは こちら を参照してください。 公式マニュアル (Documentation) を入手したい。 https //wiki.mageia.org/en/Category Documentation から必要なマニュアルを検索してください。 サポート情報について 下記サイトに関連情報があります。 Support for Mageia distribution https //www.mageia.org/en/support/ Mageia forum https //forums.mageia.org/en/ オンラインドキュメント https //wiki.mageia.org/en/Category Documentation 公式メーリングリストの利用について 各種メーリングリストが、https //wiki.mageia.org/en/How_to_subscribe_to_mailing_lists より購読申込みできます。 サポート/ディスカッションリストは複数の言語で提供されていますが、その中でも特に英語のメーリングリストでは活発な活動が行われています。 メーリングリストの全アーカイブは https //ml.mageia.org/ から見つけることができます。 Mageia Cauldron とは何ですか? 次期公式版としてリリースされる予定の開発中の版は「Cauldron」と呼ばれます。 将来のリリースに向けて改良を加えたり検証を行ったりする目的で、この「Cauldron」は一般公開されます。多数の開発者やテスターが Cauldron の開発に参加しコミュニティを形成しています。 Cauldron - Mageia wiki https //wiki.mageia.org/en/Cauldron Mageia のリリースロードマップはどのようになっていますか。 今後の新しくリリースされるバージョンのロードマップは、次のとおりです。 Mageia 2 development https //wiki.mageia.org/en/Mageia_2_development ダウンロード / ミラーサイト (Downloading / Mirrors) ミラーサイト一覧へは、Mageia 公式サイトのページ http //www.mageia.org/en/downloads/ よりアクセスできます。 日本国内ミラーサイト (Japanese Mirrors) 山形大学 (Yamagata, Japan) http //ftp.yz.yamagata-u.ac.jp/pub/linux/mageia/ フル版(Free Software-only) 32-bit DVD 全言語サポート 4GB 64-bit DVD 全言語サポート 4GB 両Arch CD Limited 700MB LiveCD版 パッケージを大幅に省略したインストール用 ISO イメージで、言語環境は英語などに限られます。KDE 版および GNOME 版のCDがあります。日本語入力環境を整えるためには、Asia 版を選択してください。 インストール方法やその直後のトラブル等に関すること 日本語入力を有効にする Mageia Control Center → System → Manage localization of your system で日本語IMを選択します。 IBus および SCIM が公式レポジトリに用意されています。 GNOME 環境で日本語が入力できない ・パネルに ibus のアイコンが表示されない ・そもそも ibus が起動していない ・しかも ibus-gtk がインストールされていない これじゃ日本語入力出来るわけがないorz で、ibus-gtk 、 ibus-qt4 をインストールして再ログインしてみたんだが、状況に変化なし。 /etc/sysconfig/i18n の内容には問題は見当たらないので、Gnome環境では i18n でのインプットメソッドの設定を全く反映してくれないみたいだ。 /.bash_profile に下記を追記して ibus を使える様にした。 これで取りあえずは日本語入力が出来るようになった。 export GTK_IM_MODULE=ibus export QT_IM_MODULE=xim export XMODIFIERS="@im=ibus" ibus-daemon -d -x ネットワークインストールを行いたい。 Boot.iso が公開されているので、これを使ってネットワークインストール (FTP インストール)を行うことができます。 Boot.iso は約 40MB 前後のコンパクトなファイルです。このイメージを CD-ROM に焼いて、これから起動することが可能です。この方法はすべてのインストールメディア(CDROM/ネットワーク/ハードディスク)をサポートしています。 アップグレード・インストールできますか? Mandriva 2010.1/2010.2 → Mageia へのアップグレードが可能です。インストール用メディアを使い、その指示に従って作業を進めます。 アップグレードの手段として、インストール用CDイメージから行うことや、ネットワーク(インターネット)に接続して行うことなど、いずれの方法も選択できます。 アップデート(更新)しません。 OSインストール時の最後のアップデートの適用をスキップすると、URPMIではメディア(リポジトリ)を追加しないからな # urpmi.removemedia -a # urpmi.addmedia --distrib --mirrorlist $MIRRORLIST 2ch Linux 板 スレッド Mageia Part 1 http //engawa.2ch.net/test/read.cgi/linux/1298345116/
https://w.atwiki.jp/linux-memo/pages/16.html
Liferea linuxのRSS-Reader 画面のスクリーンショット OS Fedora liferea-1.4.17-1.fc9.i386.rpm 操作 Menuから 購読 配信元一覧のインポート 配信元の一覧をインポートできる。Windowsのgoo-readerなどからのインポートも可能 配信元一覧のエクスポート ツールバーから 新しい購読 配信元をダイアログの中に入力する。
https://w.atwiki.jp/falconsnow/pages/16.html
過去問の一覧 ファイル /etc/syslog.conf 内の1行として以下の記述がある。(*.info /var/log/foolog) この説明として適切なものを選びなさい。<試験番号:102> 1. 「*」は「すべてのプロセス」を意味し、通常はプロセスIDを記述する 2. 「*」は「すべてのデーモン」を意味し、通常はデーモン名を記述する 3. すべてのファシリティに対し、プライオリティがinfoのログを/var/log/foolog に記載する 4. すべてのファシリティに対し、プライオリティがinfo以上のログを/var/log/foolog に記載する 5. 「*.info」は「*;info」と書かなければならない 正解は→ 4 あるソフトウェアのソースコードなどが含まれた一般的なアーカイブファイル「prog.tar.gz」がある。 このアーカイブファイルを用いてソフトウェアをインストールしたい場合、実行すべきコマンドの順序として適切なものを選びなさい。<試験番号:101> A make B ./configure C tar zxf prog.tar.gz D make install E cd prog ◆順序◆ 1. C - A - D - B - E 2. C - E - A - D - B 3. C - E - B - A - D 4. C - E - A - B - D 正解は→ 3 コマンドldconfigを利用するシチュエーションとして適切なものを選びなさい。<試験番号:101> 1. 新しく共有ライブラリをインストールしたとき 2. ネットワーク構成を変更したとき 3. ディスクドライブを追加したとき 4. ネットワーク構成を確認するとき 5. プリンタを設定するとき 正解は→ 1 プログラム /bin/asdfg が実行時に必要とする共有ライブラリを調べたい。 実行すべきコマンドとして適切なものを選びなさい。<試験番号:101> 1. rpm -ql /bin/asdfg 2. ldd /bin/asdfg 3. ldconfig /bin/asdfg 4. lsmod /bin/asdfg 正解は→ 2 実行中のプロセスの優先度を変更したい。 利用するコマンドとして適切なものを選びなさい。<試験番号:101> 1. nice 2. ps 3. kill 4. renice 5. killall 正解は→ 4 vi エディタで文書を編集している。 コマンドモードで「ZZ」(大文字のZを2回)を入力した場合、得られる結果として適切なものを選びなさい。<試験番号:101> 1. ファイルへの書き込みを行わずに vi を終了する 2. 編集中の内容を破棄して vi を終了する 3. 編集中の内容をファイルに書き込んで vi を終了する 4. 編集中の内容を破棄して、直前に保存した内容に戻す 正解は→ 3 あるユーザーがumask値を022とした環境で作業している。 このとき、 $ touch testfile としてファイルを作成した場合、ファイルtestfileのアクセス権として適切なものを選びなさい。<試験番号:101> 1. 22 2. 622 3. 644 4. 755 5. 775 正解は→ 3 ちなみに、上記の場合は・・・ ファイルを作成した場合は、umask値は 666 ディレクトリを作成した場合は、umask値は 777 であるので、その値からumask値を引けばいい!!! コマンド「man 5 passwd」を実行したとき、結果として期待されるものを選びなさい。<試験番号:102> 1. passwdコマンドのマニュアルページが表示される 2. passwdコマンドの簡単なヘルプが表示される 3. /etc/passwdファイルのマニュアルページが表示される 4. エラーになる 正解は→ 3 ◆解説◆ manコマンドを使用する時に セクション番号 が使用する事ができる。 セクション番号(1):コマンドマニュアル セクション番号(8):システム管理者用コマンドマニュアル セクション番号(5):設定ファイルのマニュアル ユーザーがログインを完了した後に表示するメッセージを設定するファイルとして適切なものを選びなさい。<試験番号:102> 1. /etc/skel 2. /etc/issue 3. /etc/inittab 4. /etc/issue.net 5. /etc/motd 正解は→ 5 ◆解説◆ motdは、 Message Of The Day の略。 以下はgrub.confの一部である。 title Linux (2.4.21-1) root (hd0,1) _______ /vmlinuz ro root=/dev/hda3 mem=128M initrd /initrd-2.4.21-1.img 下線部に当てはまるキーワードとして適切なものを選びなさい。<試験番号:102> 1. label 2. boot 3. kernel 4. root 5. append 正解は→ 3 ◆解説◆ Linuxのブートローダは、 GRUB と LILO の2種類である。 なお他のキーワードの一覧も掲載します。 title OSのラベル root ルートパーティション initrd 初期RAMディスクイメージ makeactive パーティションをアクティブにする default デフォルトのOS コマンド「shutdown -r +3」を実行したとき、実行結果として適切なものを選びなさい。<試験番号:102> 1. 3秒後に再起動する 2. 3分後に再起動する 3. 3時間後に再起動する 4. 間違っているのでエラーになる 正解は→ 2 ◆解説◆ shutdownのオプションで数値を入れる際は、分刻みで設定される。 一般ユーザーがメモリなどのシステムリソースを消費しきってしまわないよう、ユーザーの利用に制限をかけることができる。 設定を行うコマンドとして適切なものを選びなさい。<試験番号:102> 1. init 2. usermod 3. ulimit 4. umask 5. apropos 正解は→ 3 ◆解説◆ ulimitコマンドを使用すると シェル や 子プロセス などが利用できるシステムリソースを制限する事ができます。 ユーザーpepperでログインしている。 ※重要 このユーザーのみ、/home/pepper/libディレクトリにあるライブラリを利用したい。 実行すべき作業として適切なものを選びなさい。<試験番号:101> 1. ブートローダの起動オプションでディレクトリを指定する 2. ユーザーの環境変数LD_LIBRARY_PATHにパスを記述する 3. ~/ld.so.confにパスを記述する 4. ユーザーの環境変数PATHにパスを記述する 正解は→ 2 あるランレベルでシステムを起動した後、シングルユーザーモードに切り替えたい。 実行すべきコマンドとして適切なものを選びなさい。<試験番号:102> 1. init 0 2. init 1 3. telinit 3 4. reboot 5. chroot 正解は→ 2 ◆解説◆ 通常Linuxが起動した後に、プロセス init が起動されサービスが起動します。 init処理は、ランレベルで決まられている。 通常は、2〜5の数字。 ランレベル0は、シャットダウン ランレベル1は、シングルユーザーモード ランレベル6は、再起動 「echo $?」を実行すると「1」が表示された。 ここでキーボードの上矢印キーを押し、再度同じコマンドを実行した。 実行結果として適当なものを選びなさい。<試験番号:102> 1. 「1」が表示される 2. 「0」が表示される 3. 「?」が表示される 4. 何も表示されない 正解は→ 2 ◆解説◆ bashシェルは、実行された時に実行された編集『$?』に格納されます。 なお、プログラムが正常終了した場合は 0 。 プログラムが異常終了した場合は 0以外の数値が表示する 。 mke2fs コマンドのマニュアルページのファイルがどこにあるのかを知りたい。 実行すべきコマンドとして適切なものを選びなさい。<試験番号:101> 1. which mke2fs 2. whereis mke2fs 3. whatis mke2fs 4. apropos mke2fs 5. where mke2fs 正解は→ 2 グループseasonは、spring、summerをその所属ユーザーとする。 このとき、/etc/groupのエントリとして正しいものを選びなさい。<試験番号:102> 1. season x 501 spring,summer 2. season x 501 501 spring,summer 3. season spring,summer 4. spring,summer x season 5. spring,summer 501 x season 正解は→ 1 ◆解説◆ /etc/groupの構造は下記の通りです。 グループ名 グループパスワード グループID 所属ユーザー vi エディタを使っている。カーソルのある行から5行を削除したい。 実行すべき入力として適切なものを選びなさい。なお、vi はコマンドモードであるとします。<試験番号:101> 1. 5X 2. 5xx 3. 5d 4. 5dd 5. 5XX 正解は→ 4 ◆解説◆ 行削除するコマンドは dd 。 5X:カーソルより左側の文字を5文字削除します。 5xx:カーソル位置の文字を6文字削除します(「5x」+「x」)。 5d:何も削除されません。 5XX:カーソルより左側の文字を6文字削除します(「5X」+「X」) あるディレクトリを ls コマンドで見ると、以下のように表示された。 $ ls -ld /tmp drwxrwxrwt 2 root root 1024 Mar 10 15 20 /tmp この表示の説明として最も適切なものを選びなさい。<試験番号:101> 1. /tmp ディレクトリ内の全ファイルのサイズ総計は1024KBである 2. /tmp ディレクトリにはスティッキービットが設定されている 3. /tmp ディレクトリはrootユーザーしか利用できない 4. /tmp ディレクトリには 2つのファイルもしくはディレクトリが格納されている 5. /tmp ディレクトリに作成されたファイルの所有者はすべてrootユーザーになる 正解は→ 2 ◆解説◆ 一般のユーザーからアクセス権表示が『 rwt 』となっているディレクトリには、『 スティッキービット 』が設定されています。 ※スティッキービットとは・・・・LinuxなどのOSにおけるファイルアクセス権限の一つの事である。
https://w.atwiki.jp/skill2linux/pages/2.html
メニュー Linux 関連 Linux プログラミング Linux プログラミング 第二回 yumdownloader SRPM のリビルド FTP 接続用のユーザ作成 Perl の文字コード emacs について よく使うコマンド Android 関連 Android 開発環境構築 Android 開発 MEMO Android 開発 第一回 Android Xmlの属性について Android リファレンス クラス Haskell 関連 関数関連 VmWare 関連 BIOS 起動の設定 Java 関連 Java ライブラリ 第一回 WordPress関連 インストール方法 デザイン作成 MySQL 関連 メンテナンス系 Sendmail 関連 Sendmail 設定系 DNS 設定系 Dovecot 設定系 Sendmail 設定系(リレー) JavaScript 関連 jqGrid について ここを編集
https://w.atwiki.jp/pangyaserver/pages/160.html
仮ですが、他に挑戦する方の参考になるようDockerを使用した構築方法を記載しておきます。 環境 Docker、docker-compose導入済み rootlessOK 現時点での問題点 パケットを受けた時の文字コードとプログラム側の文字コード、DB側の文字コードが絡み合って日本語の名前、サーバ名が文字化けする (苦肉の策として名前はDB側で変更すればOKだが、名前の検索とかはできなくなる) また、コンフィグで日本語は使用できない このあたりに詳しい方、更新をお願いします。 Dockerfile ARG BUILDER_IMAGE=ubuntu noble FROM $BUILDER_IMAGE as builder RUN apt-get update \ apt-get -y install --no-install-recommends git libzip-dev gnupg gcc g++ libglib2.0-dev unixodbc-dev pkg-config libmysqlclient-dev ca-certificates make \ rm -rf /var/lib/apt/lists/* WORKDIR /tmp ARG __build_type=release RUN git clone https //github.com/Acrisio-Filho/SuperSS-Dev WORKDIR /tmp/SuperSS-Dev # data_iff.hの更新でビルドできない問題への対応 RUN git reset --hard 29657d3233a84b77f3cc7bd07af6e50705a9a62d WORKDIR /tmp/SuperSS-Dev/Server\ Lib/Linux\ Builds/ # Build gg RUN make -f Makefile-ggauth70.mk RUN make -f Makefile-ggsrvlib.mk # BUild Smart RUN make -f Makefile-smart.mk # Build Game Server RUN make -f Makefile-gs.mk # Build Auth Server RUN make -f Makefile-as.mk # Build Login Server RUN make -f Makefile-ls.mk # Build Message Server RUN make -f Makefile-ms.mk # Build Rank Server RUN make -f Makefile-rs.mk # PangyaServer FROM ubuntu noble as Server RUN apt-get update \ DEBIAN_FRONTEND=noninteractive apt-get install -y libc6 unzip curl gnupg libzip-dev tmux libglib2.0 libmysqlclient21 tdsodbc unixodbc \ rm -rf /var/lib/apt/lists/* # ビルドしたものをコピー COPY --from=builder ["/tmp/SuperSS-Dev/Server Lib/Linux Builds/Auth Server/", "/opt/AuthServer"] COPY --from=builder ["/tmp/SuperSS-Dev/Server Lib/Linux Builds/Game Server/", "/opt/GameServer"] COPY --from=builder ["/tmp/SuperSS-Dev/Server Lib/Linux Builds/Login Server/", "/opt/LoginServer"] COPY --from=builder ["/tmp/SuperSS-Dev/Server Lib/Linux Builds/Message Server/", "/opt/MessageServer"] COPY --from=builder ["/tmp/SuperSS-Dev/Server Lib/Linux Builds/Rank Server/", "/opt/RankServer"] # 起動スクリプトと設定 COPY ./start.sh /entrypoint.sh COPY ./ini/odbc.ini /etc/odbc.ini COPY ./ini/odbcinst.ini /etc/odbcinst.ini WORKDIR /opt RUN chmod +x /entrypoint.sh ENTRYPOINT ["/entrypoint.sh"] CMD ["start"] docker-compose.yaml version 3 services db container_name pangya_db hostname pangya_db ports - "1433 1433" image mcr.microsoft.com/mssql/server 2019-latest environment - ACCEPT_EULA=Y - SA_PASSWORD=【ここは変更してください】 - MSSQL_PID=Express - MSSQL_LCID=1041 - MSSQL_COLLATION=Japanese_CI_AS volumes - "./mssqlserver/data /var/opt/mssql/data" - "./mssqlserver/log /var/opt/mssql/log" - "./mssqlserver/secrets /var/opt/mssql/secrets" networks - pangya app container_name pangya_app ports - "7777 7777" - "20203 20203" - "10303 10303" - "30303 30303" - "4774 4774" build . image japangya depends_on - db networks - pangya volumes - "./ini/auth_server.ini /opt/AuthServer/server.ini" - "./ini/game_server.ini /opt/GameServer/server.ini" - "./ini/login_server.ini /opt/LoginServer/server.ini" - "./ini/message_server.ini /opt/MessageServer/server.ini" - "./ini/rank_server.ini /opt/RankServer/server.ini" #- "./pangya_jp.iff /opt/GameServer/data/pangya_jp.iff" #iff入れ替えた場合 command /bin/sh -c "while ; do sleep 10; done" web container_name web image nginx volumes - "./www /usr/share/nginx/html" ports - "8080 80" networks pangya driver bridge start.sh #!/bin/bash set -eu # Base Directory dir=/opt/ as=AuthServer ls=LoginServer ms=MessageServer rs=RankServer gs=GameServer #smart=Smart-Calculator # Smart Calculator lib #tmux new-session -s "${smart}" -c "/home/acrisio/projects/Node/${smart}/" -d node smart.js # Auth Server tmux new-session -s "${as}" -c "${dir}/${as}/" -d ./auth # Login Server tmux new-session -s "${ls}" -c "${dir}/${ls}/" -d ./login # Message Server tmux new-session -s "${ms}" -c "${dir}/${ms}/" -d ./msn # Rank Server tmux new-session -s "${rs}" -c "${dir}/${rs}/" -d ./rank # Game Server tmux new-session -s "${gs}" -c "${dir}/${gs}/" -d ./game # Show sessions createds tmux ls if [ "$1" = start ]; then tmux -v new-session -s console -d while true; do sleep 1 tmux list-sessions /dev/null 2 1 || break done exit 0 fi exec "$@" odbc.ini [pangya] Driver = FreeTDS Server = pangya_db host = pangya_db port = 1433 tds version = 7.4 ClientCharset = SHIFT_JIS odbcinst.ini [FreeTDS] Description = FreeTDS for SQL Server Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so UsageCount = 1 ファイル構造 以下の用にini等を配置 ├ Dockerfile ├ docker-compose.yaml ├ start.sh ├ pangya_jp.iff ├ ini │ ├ auth_server.ini │ ├ game_server.ini │ ├ login_server.ini │ ├ message_server.ini │ ├ odbc.ini │ ├ odbcinst.ini │ └ rank_server.ini └ www 事前準備 上記ファイル構造通りに各iniファイルを配置します。 ※authやgameなどはリポジトリ上から取得可能です。 各server.iniのDBIPはpangyaに設定します。 auth以外のserver.iniのAUTHSERVERのIPはauthに設定します。 それ以外は好きなように設定してください。 ただし、日本語を使うとバグるので英語でお願いします。(Windows版は日本語でも行ける) www内はリポジトリのwwwをコピーしてきてください。 ビルド docker compose buildを実行します。 CPUにもよりますが大体10~20分程度かかるのでコーヒーでも飲みながら待ちます。 DBの準備 docker compose up dbをして、SSMSからアクセスします。 pangyaユーザやsqlの実行をしてpangyaDBを作成します。 DB周りはWindowsと同様に設定可能なのでそちらを参照してください。 起動 docker compose up -dをして起動します。 docker compose logs -fでログを開きそれぞれ正常に起動していることを確認します。 補足 各サーバを別々で起動しようとしましたがどうにもゲームサーバだけCPU使用率が異常になるのでtmuxで起動する手法のままにしています。 サーバのメモリが2GB以下でMSSQLが起動できない時 MSSQLは要件として2GB以上を要求しています。 安定性を犠牲にして無理やり起動する場合は以下のDockerfileでビルドしてください。 (数ヶ月使った感じ大丈夫そうでした) FROM oraclelinux 7-slim AS build0 WORKDIR /root RUN yum update -y yum install -y binutils gcc ADD wrapper.c /root/ RUN gcc -shared -ldl -fPIC -o wrapper.so wrapper.c FROM mcr.microsoft.com/mssql/rhel/server 2019-latest COPY --from=build0 /root/wrapper.so /root/ ADD wrapper.c /root/ USER root RUN echo "/root/wrapper.so" /etc/ld.so.preload USER mssql
https://w.atwiki.jp/knight_9999/pages/33.html
トップページ Linux Rsyncによるコピー Rsyncによるコピー 転送レートを指定する bwlimitオプションを使う。 rsync -vurl --delete --bwlimit=512 dir1/ /dir2 単位がKBPSなので注意。 変換表 100Mbps 12500KBps 10Mbps 1250KBps 1Mbps 125KBps 500kbps 62.5KBps 権限オプション -o オーナー情報を維持 (rootのみ可能) -g グループ情報を維持 (rootのみ可能) -p 権限情報を維持 rsyncとディレクトリの権限 コピーしようとしたディレクトリにアクセス出来ないディレクトリがあると、エラーになってしまい、 何もコピーされない。 rsync -vurl --delete sample1/ sample2 rsync opendir "/home/xxxx/temp/sample1/nuo" failed Permission denied (13) deleting sample1/nuo/ deleting sample1/hoge/ deleting sample1/foo/ deleting sample1/ IO error encountered -- skipping file deletion sent 99 bytes received 15 bytes 228.00 bytes/sec total size is 0 speedup is 0.00 rsync error some files/attrs were not transferred (see previous errors) (code 23) at main.c(1070) [sender=3.0.9] そういう場合は、除外指定をすればコピーできるようになる。 仮に、sample1ディレクトリの構造が sample1/ hoge foo nuo となっている場合で、nuoが読み込めない場合は rsync -vurl --delete --exclude "/nuo" sample1/ sample2 とする。 この場合、コピー後のsample2ディレクトリは sample2/ hoge foo になる。 sample1ディレクトリを含めてコピーする場合は rsync -vurl --delete --exclude "sample1/nuo" sample1 sample2 のように、除外のときもsample1から記述する。 コピー後のsample2のディレクトリは sample2/ sample1/ hoge foo となる。 (2013/5/23)