CentOS7から/var/run以下のpidディレクトリがOS再起動の度に削除される

概要

FreeRadiusサーバーをCentOS7で稼働させていたとき、OS再起動のタイミングでradiusデーモンが起動しないことがありました。

FreeRadiusはpidファイルを/var/run/radiusd/tmpに作成するようになっていたのですが、
CentOS7から/var/run以下ディレクトリは再起動のたびに削除されるので/etc/tempfile.dの設定ファイルで自動作成させる必要がありました。

設定

/etc/tmpfiles.d/radiusd.confに下記設定を書いておくことでディレクトリが作成されるようになります。

D /var/run/radiusd/tmp 0710 radiusd radiusd -


radiusデーモンが起動しなかった際のログ

/var/log/radius/radius.log

Wed Aug  5 16:15:17 2015 : Error: Failed changing permissions on /var/run/radiusd/tmp: No such file or directory
Wed Aug  5 16:15:17 2015 : Error: rlm_eap_tls: Failed initializing SSL context
Wed Aug  5 16:15:17 2015 : Error: rlm_eap (EAP): Failed to initialise rlm_eap_tls
Wed Aug  5 16:15:17 2015 : Error: /etc/raddb/mods-enabled/eap[17]: Instantiation failed for module "eap"


Linuxサーバー起動時ファイルシステムチェックをスキップ

概要

Linuxサーバーを再起動した場合fsckが自動で走りなかなか起動しないときがあります。
fsckは重要ですが早く起動したいときに困ることがあります。
そんなときに使えるTIPSです。

方法その1. カーネルパラメータにfastbootを指定

以下のように起動時にgrubカーネルパラメータの最後にfastbootをつけることでfsckをスキップして起動することが出来ます。

kernel /boot/vmlinuz-2.6.32-754.10.1.el6.x86_64 ro root=LABEL=/ LANG=en_US.UTF-8 console=tty0 console=ttyS0,115200n8 fastboot

方法その2. ファイルシステムチェック無しで直ちに再起動

shutdownコマンドを使って再起動する際に小文字のfオプションをつけることでfsckをスキップして再起動させることが出来ます。

shutdown -fr now


上記を実行するとシャットダウン時のターミナルに以下の表示が出ます。

Stopping xinetd: [ OK ]
Stopping crond: [ OK ]
Shutting down ntpd: [ OK ]
Shutting down interface eth0: [ OK ]
Shutting down interface eth1: [ OK ]
Shutting down loopback interface: [ OK ]
Starting killall: [ OK ]
Sending all processes the TERM signal...
Sending all processes the KILL signal...
Saving random seed:
Syncing hardware clock to system time
Turning off swap:
Turning off quotas:
Unmounting file systems:
Halting system...
On the next boot fsck will be skipped.
md: stopping all md devices.
Shutdown: vda
Power down.
acpi_power_off called


ちなみに強制的にファイルシステムチェックが行われるように再起動する場合

大文字のFオプションをつけることで強制的にfsckが行われるように出来ます。

shutdown -Fr now

fstabのデバイス指定をUUIDにする

ちょっと前に見かけたこちらのツイート

/dev/sda	/	 ext4	defaults	0 0
/dev/sdb	/data	 ext4	defaults	0 0

fstabにこういったデバイス名の指定をしているとsdasdbがOS再起動等でデバイス名が入れ替わってしまいトラブルが起きてしまいます。
そういった場合はUUIDで指定してあげることでマウントされるデバイスを任意に指定出来るためこういった事前にトラブルを防ぐことが出来ます。

bukidコマンドを使って各デバイスのUUIDを調べます。

$ blkid
/dev/sda: UUID="xxxxx-xxxxx-xxxxx-xxxxx-xxxxx" TYPE="ext4" PARTUUID="xxxxx-xx"
/dev/sdb: UUID="yyyyy-yyyyy-yyyyy-yyyyy-yyyyy" TYPE="ext4" PARTUUID="yyyyy-yy"

sdasdbのUUIDが確認出来ます。

このUUIDを使ってfstabにデバイスを指定します。

UUID=xxxxx-xxxxx-xxxxx-xxxxx-xxxxx /	 ext4	defaults	0 0
UUID=yyyyy-yyyyy-yyyyy-yyyyy-yyyyy /data	 ext4	defaults	0 0