- 11/21 [PR]
- 11/07 Fedora19のコンソール設定
- 12/07 systemctlによるサービス管理でつまづいた
- 05/11 systemdにjettyを登録する
Title list of fedora
Fedora19をvirt-installでKVM上にインストールしたら、コンソールが表示されなかった。しかもgrub2に代わってコンソール設定も迷ったので対処方法のメモ。
(1)/etc/default/grubに以下の行を追加する。
(1)/etc/default/grubに以下の行を追加する。
GRUB_TERMINAL_OUTPUT=serial GRUB_SERIAL_COMMAND="serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1"(2)grub.cfgの再作成
# grub2-mkconfig -o /boot/grub2/grub.cfgGRUB_TERMINAL_OUTPUTがないと、シリアルに関する設定がgrub.cfgに入らないところで、少し戸惑った。
PR
仕事で使ってるサーバの大半はCentOSなんですが、たまにFedoraが混じってたりします。
Fedoraの場合、サービス管理にはsystemdを経由しますが、こいつがたまに思った通りに動いてくれません。
CentOS用に作ったkyototycoonのRPMパッケージを、Fedora用にパッケージし直し、いざ起動するとすぐ停止してしまいます。
kyototycoonのログを見ると、起動した形跡はあるが、直後にシャットダウンされている模様。
起動直後に、ステータスみると確かに殺されている。
とりあえず回避方法として、systedを経由せずに起動させています。
やり方は簡単で、起動スクリプト中に以下のシェル変数を定義すればOKです。
【変数】
SYSTEMCTL_SKIP_REDIRECT=yes
値は便宜上yesにしましたが、何でもOKです。
Fedoraの場合、サービス管理にはsystemdを経由しますが、こいつがたまに思った通りに動いてくれません。
CentOS用に作ったkyototycoonのRPMパッケージを、Fedora用にパッケージし直し、いざ起動するとすぐ停止してしまいます。
kyototycoonのログを見ると、起動した形跡はあるが、直後にシャットダウンされている模様。
起動直後に、ステータスみると確かに殺されている。
# /etc/init.d/ktserver status ktserver.service - LSB: KyotoTycoon Server Loaded: loaded (/etc/rc.d/init.d/ktserver) Active: deactivating (stop) since Fri, 07 Dec 2012 12:03:05 +0900; 1s ago Process: 32573 ExecStart=/etc/rc.d/init.d/ktserver start (code=exited, status=0/SUCCESS) Main PID: 32578 (code=exited, status=0/SUCCESS); Control: 32581 (ktserver) CGroup: name=systemd:/system/ktserver.service t 32580 /usr/bin/ktserver -port 1978 -dmn -li -log /var/log/ktserver.log -pid /var/run/ktserver.pid -th 64 -sid 2 -mhost taudience01.hogehoge.com -mport 1978 -rts /data/ktser... t 32581 /bin/bash /etc/rc.d/init.d/ktserver stop m 32650 sleep 1同じパッケージを入れている別のサーバではおきなかったりして、今のところ原因不明です。
とりあえず回避方法として、systedを経由せずに起動させています。
やり方は簡単で、起動スクリプト中に以下のシェル変数を定義すればOKです。
【変数】
SYSTEMCTL_SKIP_REDIRECT=yes
値は便宜上yesにしましたが、何でもOKです。
fedora15になってサービス管理がガラッとかわり、/etc/init.d/の下の起動スクリプトではなく、systemctlコマンドでサービスの操作を行うようになった。
今回、jettyをサービスとしてfedoraに登録した際に手間取ったので、ここにメモしておく。
使用したjettyのバージョンは、jetty-hightide-8.1.3.v20120416
まず、fedora15になってサービスに関する情報は、/lib/systemd/system 配下に集められた。
サービスを登録する場合、今までどおり起動スクリプトを/etc/init.d配下に置き、chkconfig --addで登録することも可能だが、せっかくだからsystemdの作法に従って登録したい。
そのためには、以下のような設定ファイルを書かなければいけない。
【jetty.service】
[Unit]
Description=Jetty Application Containar
[Service]
Type=simple
EnvironmentFile=-/opt/jetty/etc/jetty-env
PIDFile=/var/run/jetty.pid
User=jetty
Group=jetty
ExecStart=/usr/bin/java $RUN_ARGS
StandardOutput=null
[Install]
WantedBy=multi-user.target
そのうえで、systemctl --system daemon-reload をすれば完了。
上の設定ファイルで、EnvironmentFileにより環境変数を定義したファイルを読み込んでいるが、環境変数はExecStartでの定義にのみ使えるようだ。
User、Groupで使ってみたら、エラーになった。
なおsystemdの設定ファイルに関する情報はまだまだ少なく、結局man systemd.serviceと既存の設定ファイルが一番役に立った。
今回、jettyをサービスとしてfedoraに登録した際に手間取ったので、ここにメモしておく。
使用したjettyのバージョンは、jetty-hightide-8.1.3.v20120416
まず、fedora15になってサービスに関する情報は、/lib/systemd/system 配下に集められた。
サービスを登録する場合、今までどおり起動スクリプトを/etc/init.d配下に置き、chkconfig --addで登録することも可能だが、せっかくだからsystemdの作法に従って登録したい。
そのためには、以下のような設定ファイルを書かなければいけない。
【jetty.service】
[Unit]
Description=Jetty Application Containar
[Service]
Type=simple
EnvironmentFile=-/opt/jetty/etc/jetty-env
PIDFile=/var/run/jetty.pid
User=jetty
Group=jetty
ExecStart=/usr/bin/java $RUN_ARGS
StandardOutput=null
[Install]
WantedBy=multi-user.target
そのうえで、systemctl --system daemon-reload をすれば完了。
上の設定ファイルで、EnvironmentFileにより環境変数を定義したファイルを読み込んでいるが、環境変数はExecStartでの定義にのみ使えるようだ。
User、Groupで使ってみたら、エラーになった。
なおsystemdの設定ファイルに関する情報はまだまだ少なく、結局man systemd.serviceと既存の設定ファイルが一番役に立った。
ブログ内検索
カテゴリー
最新記事
(11/08)
(11/07)
(12/27)
(12/07)
(09/28)
最新トラックバック
プロフィール
HN:
アフロ
性別:
非公開
リコメンド