CentOS 7 systemdコマンド

CentOS 7ではsystemdが導入され、サービスの管理が従来と大きく変わっている。

サービスの起動、終了など

起動            systemctl start
終了            systemctl stop
強制終了          systemctl kill -s 9
再起動           systemctl restart
設定反映          systemctl reload
状態表示          systemctl status
自動起動の有効化      systemctl enable
自動起動の無効化      systemctl disable
自動起動の状態表示     systemctl is-enabled
サービス一覧の表示     systemctl --type service
起動失敗のユニット表示  systemctl --failed
起動しているユニット一覧 systemctl
全ての状態表示      systemctl --all

起動失敗のユニット表示

[root@server1 ~]# systemctl --failed
UNIT            LOAD   ACTIVE SUB    DESCRIPTION
clamd.service   loaded failed failed SYSV: Clam AntiVirus Daemon is a TCP/IP or socket protocol serv
network.service loaded failed failed LSB: Bring up/down networking
rngd.service loaded failed failed Hardware RNG Entropy Gatherer Daemon

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.

3 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.

*clamd.serviceとnetwork.serviceとrngd.serviceが起動失敗している。

clamd.serviceは、再起動後ソケットファイルが見つからないというエラーで clamd が起動失敗している。原因はcentos7では/ver/runがtempfsになったので再起動後にはディレクトリ等全て消えてしまう。なのでソケットファイルが見つからないというエラーになる。
対策は、再起動後にディレクトリーを作成するように設定ファイルを編集

[root@server1 ~]# vi /etc/init.d/clamd
start(){
        echo -n "Starting Clam AntiVirus Daemon: "
        #再起動後にclamavのdirを作成
        mkdir /var/run/clamav > /dev/null 2>&1
        chown clamav:clamav /var/run/clamav > /dev/null 2>&1
        daemon clamd
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/clamd
        return $RETVAL
}

2015/1/2追記
以前はclamdの設定ファイルを編集していたが、/etc/tmpfiles.d/にclamd.confを追記することで、OS起動時に/var/run/clamavディレクトリを作成できるように変更

[root@server1 ~]# vi /etc/tmpfiles.d/clamd.conf
d /var/run/clamav 0755 root root - ← 追加
[root@server1 ~]# systemd-tmpfiles --create clamd.conf

systemctlをリロード
[root@server1 ~]# systemctl daemon-reload
clamdを再起動
[root@server1 ~]# systemctl restart clamd

network.serviceは、InterfaceでIPアドレスを指定していると起動失敗するらしい。
Networkに関するユニットの自動起動の確認。

[root@server1 ~]# systemctl list-unit-files | grep Network
dbus-org.freedesktop.NetworkManager.service enabled
NetworkManager-dispatcher.service           enabled
NetworkManager-wait-online.service          disabled
NetworkManager.service                      enabled

NetworkManager-wait-online.serviceを自動起動設定
[root@server1 ~]# systemctl enable NetworkManager-wait-online.service
ln -s '/usr/lib/systemd/system/NetworkManager-wait-online.service' '/etc/systemd/system/multi-user.target.wants/NetworkManager-wait-online.service'
[root@server1 ~]# systemctl list-unit-files | grep Network
dbus-org.freedesktop.NetworkManager.service enabled
NetworkManager-dispatcher.service           enabled
NetworkManager-wait-online.service          enabled
NetworkManager.service                      enabled

networkを再起動
[root@server1 ~]# systemctl restart network

rngd.serviceは、多くのユーザーを抱え、乱数を使った認証サーバーなどで使うデーモン。自宅サーバーでは停止しても問題ないので自動起動も無効にする。

[root@server1 ~]# systemctl stop rngd.service
[root@server1 ~]# systemctl disable rngd.service

systemdをリロード
[root@server1 ~]# systemctl daemon-reload

サーバーを再起動

[root@server1 ~]# reboot

起動失敗のユニット確認

[root@server1 ~]# systemctl --failed
0 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.

起動失敗のユニットは無くなった。

ユニットの自動起動が有効、無効の一覧

[root@server1 ~]# systemctl list-unit-files -t service
UNIT FILE                                   STATE
abrt-ccpp.service                           enabled
abrt-oops.service                           enabled
abrt-pstoreoops.service                     disabled
abrt-vmcore.service                         enabled
abrt-xorg.service                           enabled
abrtd.service                               enabled
accounts-daemon.service                     enabled
alsa-restore.service                        static
alsa-state.service                          static
alsa-store.service                          static
anaconda-direct.service                     static
anaconda-noshell.service                    static
anaconda-shell@.service                     static
anaconda-sshd.service                       static
anaconda-tmux@.service                      static
anaconda.service                            static
arp-ethers.service                          disabled
atd.service                                 enabled
auditd.service                              enabled
autofs.service                              disabled
autovt@.service                             disabled
avahi-daemon.service                        enabled
blk-availability.service                    disabled
bluetooth.service                           enabled
brandbot.service                            static
brltty.service                              disabled
canberra-system-bootup.service              disabled
canberra-system-shutdown-reboot.service     disabled
canberra-system-shutdown.service            disabled
certmonger.service                          disabled
cgconfig.service                            disabled
cgdcbxd.service                             disabled
cgred.service                               disabled
chrony-wait.service                         disabled
chronyd.service                             enabled
colord.service                              static
configure-printer@.service                  static
console-getty.service                       disabled
console-shell.service                       disabled
cpupower.service                            disabled
crond.service                               enabled
cups-browsed.service                        disabled
cups.service                                enabled
dbus-org.bluez.service                      enabled
dbus-org.freedesktop.Avahi.service          enabled
dbus-org.freedesktop.hostname1.service      static
dbus-org.freedesktop.locale1.service        static
dbus-org.freedesktop.login1.service         static
dbus-org.freedesktop.machine1.service       static
dbus-org.freedesktop.ModemManager1.service  enabled
dbus-org.freedesktop.NetworkManager.service enabled
dbus-org.freedesktop.nm-dispatcher.service  enabled
dbus-org.freedesktop.timedate1.service      static
dbus.service                                static
debug-shell.service                         disabled
display-manager.service                     enabled
dm-event.service                            disabled
dmraid-activation.service                   enabled
dnsmasq.service                             disabled
dovecot.service                             enabled
dracut-cmdline.service                      static
dracut-initqueue.service                    static
dracut-mount.service                        static
dracut-pre-mount.service                    static
dracut-pre-pivot.service                    static
dracut-pre-trigger.service                  static
dracut-pre-udev.service                     static
dracut-shutdown.service                     static
ebtables.service                            disabled
emergency.service                           static
fcoe.service                                disabled
firewalld.service                           disabled
firstboot-graphical.service                 enabled
fprintd.service                             static
gdm.service                                 enabled
getty@.service                              enabled
gssproxy.service                            disabled
halt-local.service                          static
htcacheclean.service                        static
httpd.service                               enabled
hypervkvpd.service                          enabled
hypervvssd.service                          enabled
initial-setup-graphical.service             disabled
initial-setup-text.service                  disabled
initrd-cleanup.service                      static
initrd-parse-etc.service                    static
initrd-switch-root.service                  static
initrd-udevadm-cleanup-db.service           static
instperf.service                            static
ip6tables.service                           disabled
ipsec.service                               disabled
iptables.service                            disabled
irqbalance.service                          enabled
iscsi.service                               enabled
iscsid.service                              disabled
iscsiuio.service                            disabled
kdump.service                               disabled
kmod-static-nodes.service                   static
ksm.service                                 enabled
ksmtuned.service                            enabled
libstoragemgmt.service                      enabled
libvirt-guests.service                      disabled
libvirtd.service                            enabled
lldpad.service                              disabled
lvm2-lvmetad.service                        disabled
lvm2-monitor.service                        enabled
lvm2-pvscan@.service                        static
mariadb.service                             enabled
mdmon@.service                              static
mdmonitor.service                           enabled
messagebus.service                          static
microcode.service                           enabled
ModemManager.service                        enabled
multipathd.service                          enabled
netcf-transaction.service                   disabled
NetworkManager-dispatcher.service           enabled
NetworkManager-wait-online.service          enabled
NetworkManager.service                      enabled
nfs-blkmap.service                          disabled
nfs-idmap.service                           disabled
nfs-lock.service                            enabled
nfs-mountd.service                          disabled
nfs-rquotad.service                         disabled
nfs-secure-server.service                   disabled
nfs-secure.service                          disabled
nfs-server.service                          disabled
nfs.service                                 disabled
nfslock.service                             disabled
nmb.service                                 enabled
ntpd.service                                enabled
ntpdate.service                             disabled
numad.service                               disabled
oddjobd.service                             disabled
packagekit-offline-update.service           enabled
plymouth-halt.service                       disabled
plymouth-kexec.service                      disabled
plymouth-poweroff.service                   disabled
plymouth-quit-wait.service                  disabled
plymouth-quit.service                       disabled
plymouth-read-write.service                 disabled
plymouth-reboot.service                     disabled
plymouth-start.service                      disabled
plymouth-switch-root.service                static
polkit.service                              static
postfix.service                             enabled
psacct.service                              disabled
qemu-guest-agent.service                    static
quotaon.service                             static
radvd.service                               disabled
rc-local.service                            static
rdisc.service                               disabled
realmd.service                              static
rescue.service                              static
rhel-autorelabel-mark.service               static
rhel-autorelabel.service                    static
rhel-configure.service                      static
rhel-dmesg.service                          disabled
rhel-domainname.service                     disabled
rhel-import-state.service                   static
rhel-loadmodules.service                    static
rhel-readonly.service                       static
rngd.service                                disabled
rpcbind.service                             enabled
rpcgssd.service                             disabled
rpcidmapd.service                           disabled
rpcsvcgssd.service                          disabled
rsyncd.service                              disabled
rsyslog.service                             enabled
rtkit-daemon.service                        enabled
saslauthd.service                           enabled
serial-getty@.service                       disabled
smartd.service                              enabled
smb.service                                 enabled
speech-dispatcherd.service                  disabled
spice-vdagentd.service                      enabled
sshd-keygen.service                         static
sshd.service                                enabled
sshd@.service                               static
sssd.service                                disabled
svnserve.service                            disabled
sysstat.service                             enabled
systemd-ask-password-console.service        static
systemd-ask-password-plymouth.service       static
systemd-ask-password-wall.service           static
systemd-backlight@.service                  static
systemd-binfmt.service                      static
systemd-fsck-root.service                   static
systemd-fsck@.service                       static
systemd-halt.service                        static
systemd-hibernate.service                   static
systemd-hostnamed.service                   static
systemd-hybrid-sleep.service                static
systemd-initctl.service                     static
systemd-journal-flush.service               static
systemd-journald.service                    static
systemd-kexec.service                       static
systemd-localed.service                     static
systemd-logind.service                      static
systemd-machined.service                    static
systemd-modules-load.service                static
systemd-nspawn@.service                     disabled
systemd-poweroff.service                    static
systemd-quotacheck.service                  static
systemd-random-seed.service                 static
systemd-readahead-collect.service           enabled
systemd-readahead-done.service              static
systemd-readahead-drop.service              enabled
systemd-readahead-replay.service            enabled
systemd-reboot.service                      static
systemd-remount-fs.service                  static
systemd-shutdownd.service                   static
systemd-suspend.service                     static
systemd-sysctl.service                      static
systemd-timedated.service                   static
systemd-tmpfiles-clean.service              static
systemd-tmpfiles-setup-dev.service          static
systemd-tmpfiles-setup.service              static
systemd-udev-settle.service                 static
systemd-udev-trigger.service                static
systemd-udevd.service                       static
systemd-update-utmp-runlevel.service        static
systemd-update-utmp.service                 static
systemd-user-sessions.service               static
systemd-vconsole-setup.service              static
target.service                              disabled
teamd@.service                              static
tuned.service                               enabled
udisks2.service                             static
upower.service                              disabled
usbmuxd.service                             static
virtlockd.service                           static
vmtoolsd.service                            enabled
vsftpd.service                              enabled
vsftpd@.service                             disabled
wacom-inputattach@.service                  static
wpa_supplicant.service                      disabled
yum-cron.service                            enabled

237 unit files listed.

enableとなっているところは自動起動が有効、disabledとなっているところは自動起動が無効という意味。staticは他のユニットに依存するもので、これ単体で有効/無効が設定できないもの。

CentOS 7 Clam AntiVirusインストール

2015年1月4日修正
clamscanでスキャンすると時間が結構かかってたので、より高速に動作するclamdscanでウイルススキャンするように変更。また、除外ディレクトリーも新たに設定。
※clamdscanはスキャンして、変更の無いファイルは2度目以降のスキャンをスキップするので高速である。

■Clam AntiVirusをRepoforgeリポジトリからインストール
yumでインストールする場合、Repoforgeリポジトリを追加しておく必要がある

[root@server1 ~]# yum -y install clamd
読み込んだプラグイン:fastestmirror, langpacks, priorities
Loading mirror speeds from cached hostfile
 * base: ftp.nara.wide.ad.jp
 * centosplus: ftp.nara.wide.ad.jp
 * epel: mirrors.ustc.edu.cn
 * extras: ftp.nara.wide.ad.jp
 * rpmforge: ftp.neowiz.com
 * updates: ftp.nara.wide.ad.jp
77 packages excluded due to repository priority protections
依存性の解決をしています
There are unfinished transactions remaining. You might consider running yum-complete-transaction, or "yum-complete-transaction --cleanup-only" and "yum history redo last", first to finish them. If those don't work you'll have to try removing/installing packages by hand (maybe package-cleanup can help).
--> トランザクションの確認を実行しています。
---> パッケージ clamd.x86_64 0:0.98.4-1.el7.rf を インストール
--> 依存性解決を終了しました。

依存性を解決しました

====================================================================================================
 Package            アーキテクチャー    バージョン                      リポジトリー           容量
====================================================================================================
インストール中:
 clamd              x86_64              0.98.4-1.el7.rf                 rpmforge              158 k

トランザクションの要約
====================================================================================================
インストール  1 パッケージ

総ダウンロード容量: 158 k
インストール容量: 680 k
Downloading packages:
clamd-0.98.4-1.el7.rf.x86_64.rpm                                             | 158 kB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : clamd-0.98.4-1.el7.rf.x86_64                                        1/1
  検証中                  : clamd-0.98.4-1.el7.rf.x86_64                                        1/1

インストール:
  clamd.x86_64 0:0.98.4-1.el7.rf

完了しました!

■設定ファイル変更

[root@server1 ~]# vi /etc/clamd.conf

#除外ディレクトリーを指定
# Don't scan files and directories matching regex
# This directive can be used multiple times
# Default: scan all
#ExcludePath ^/proc/
#ExcludePath ^/sys/
#------追加ここから------
ExcludePath ^/proc/
ExcludePath ^/sys/
ExcludePath ^/backup/
ExcludePath ^/home/share/
#--------ここまで--------

#ルートで動作するように変更
User clamav
↓
#User clamav

#壊れたファイルは誤検出が多いため無効
DetectBrokenExecutables yes
↓
#DetectBrokenExecutables yes

#圧縮ファイルのスキャンは無効
# ClamAV can scan within archives and compressed files.
# Default: yes
ScanArchive yes
 ↓
ScanArchive no

※どのディレクトリを除外ディレクトリーに指定するかは以下を参照。
CentOSの各ディレクトリに格納されているファイルについて

bin    CentOSに最初から有るコマンド群
boot   ブートに関するファイル
dev    デバイスに関するファイル
etc    コンフィグファイル
home   root以外のユーザーディレクトリ
lib    コマンドを実行するためのファイル
lib64  コマンドを実行するための64ビット用ファイル
media  CDやDVDのマウントポイント
mnt    ファイルシステムのマウントポイント
opt    パッケージのインストール先
proc   プロセスやカーネルに関するファイル
root   rootユーザーのディレクトリ
run    プロセスのデータ /var/runは/runのシンボリックリンク
sbin   管理者が使用するコマンド
srv    システムのサービスデータ
sys    ドライバ関連のファイル
tmp    テンポラリファイル
usr    ユーザーが共通で使うプログラム群。
     ※/usr/share/applicationsがWindowsのコントロールパネルに相当
var    ログやApacheのデフォルトのドキュメントルートなど

■Clam AntiVirusの起動

clamdの起動
[root@server1 ~]# systemctl start clamd

clamdの自動起動設定
[root@server1 ~]# systemctl enable clamd
clamd.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig clamd on
The unit files have no [Install] section. They are not meant to be enabled
using systemctl.
Possible reasons for having this kind of units are:
1) A unit may be statically enabled by being symlinked from another unit's
   .wants/ or .requires/ directory.
2) A unit's purpose may be to act as a helper for some other unit which has
   a requirement dependency on it.
3) A unit may be started when needed via activation (socket, path, timer,
   D-Bus, udev, scripted systemctl call, ...).

■「freshclam」を使用してVirusDBをアップデート

ウィルス定義ファイルの更新機能を有効化
[root@server1 ~]# sed -i 's/Example/#Example/g' /etc/freshclam.conf

VirusDBをアップデート
[root@server1 ~]# freshclam
ClamAV update process started at Sun Jan  4 12:47:36 2015
WARNING: Your ClamAV installation is OUTDATED!
WARNING: Local version: 0.98.4 Recommended version: 0.98.5
DON'T PANIC! Read http://www.clamav.net/support/faq
main.cld is up to date (version: 55, sigs: 2424225, f-level: 60, builder: neo)
Downloading daily-19879.cdiff [100%]
daily.cld updated (version: 19879, sigs: 1301911, f-level: 63, builder: neo)
bytecode.cld is up to date (version: 244, sigs: 44, f-level: 63, builder: dgoddard)
Database updated (3726180 signatures) from db.local.clamav.net (IP: 218.44.253.75)
Clamd successfully notified about the update.

※clamAVのバージョンが古いというメッセージが出るが、特に問題ないので放置。

■VirusDB自動アップデートスクリプトの作成
yumでインストールすると自動で毎日アップデートしてくれるが、何らかの理由でファイルが無いという場合には以下のファイルを作成。

[root@server1 ~]# vi /etc/cron.daily/freshclam
#!/bin/sh

### A simple update script for the clamav virus database.
### This could as well be replaced by a SysV script.

### fix log file if needed
LOG_FILE="/var/log/clamav/freshclam.log"
if [ ! -f "$LOG_FILE" ]; then
    touch "$LOG_FILE"
    chmod 644 "$LOG_FILE"
    chown clamav.clamav "$LOG_FILE"
fi

/usr/bin/freshclam \
    --quiet \
    --datadir="/var/clamav" \
    --log="$LOG_FILE" \
    --daemon-notify="/etc/clamd.conf"

■clamscanでウイルススキャン
※/rootディレクトリをスキャンしてウイルスが見つかった場合だけ表示、削除する。

[root@server1 ~]# clamscan /root --infected --remove --recursive

----------- SCAN SUMMARY -----------
Known viruses: 3720154
Engine version: 0.98.4
Scanned directories: 1456
Scanned files: 3455
Infected files: 0
Data scanned: 139.04 MB
Data read: 3429.55 MB (ratio 0.04:1)
Time: 36.553 sec (0 m 36 s)

■より高速に動作するclamdscanでウイルススキャン
※clamdscanはウイルススキャンして、変更の無いファイルは2度目以降のウイルススキャンをスキップするので高速である。

[root@server1 ~]# clamdscan /root
/root: OK

----------- SCAN SUMMARY -----------
Infected files: 0
Time: 21.567 sec (0 m 21 s)

■clamdscanの定期自動実行設定(毎日実行するので/etc/cron.dailyに保存)

[root@server1 ~]# vi /etc/cron.daily/clamdscan
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
 
CLAMSCANTMP=`mktemp`
 
clamdscan / --remove > $CLAMSCANTMP 2>&1
 
[ ! -z "$(grep FOUND$ $CLAMSCANTMP)" ] && \
grep FOUND$ $CLAMSCANTMP | mail -s "Virus Found" hoge@example.com
 
[ -z "$(grep FOUND$ $CLAMSCANTMP)" ] && \
echo "clamdscan normal end" | mail -s "Virus Not Found" hoge@example.com
 
rm -f $CLAMSCANTMP

■Clam AntiVirus定期自動実行スクリプトに実行権限付加

[root@server1 ~]# chmod +x /etc/cron.daily/clamdscan

■ウィルススキャン確認

[root@server1 ~]# sh /etc/cron.daily/clamdscan

ウイルススキャンが終了すると、問題なければ以下の様なメールが届く。
Virus Not Found

clamdscan normal end

■再起動するとclamdが起動しないというトラブル発生

[root@server1 ~]# systemctl status clamd
clamd.service - SYSV: Clam AntiVirus Daemon is a TCP/IP or socket protocol server.
   Loaded: loaded (/etc/rc.d/init.d/clamd)
   Active: failed (Result: exit-code) since 日 2014-07-20 11:26:16 JST; 2min 7s ago
  Process: 21056 ExecStart=/etc/rc.d/init.d/clamd start (code=exited, status=1/FAILURE)

 7月 20 12:09:17 server1.yokensaka.com systemd[1]: Starting SYSV: Clam AntiVirus Daemon is a T.....
 7月 20 12:09:17 server1.yokensaka.com clamd[1034]: clamd daemon 0.98.4 (OS: linux-gnu, ARCH: ...4)
 7月 20 12:09:17 server1.yokensaka.com clamd[1034]: Log file size limited to 4294967295 bytes.
 7月 20 12:09:17 server1.yokensaka.com clamd[1034]: Reading databases from /var/clamav
 7月 20 12:09:17 server1.yokensaka.com clamd[1034]: Not loading PUA signatures.
 7月 20 12:09:17 server1.yokensaka.com clamd[1034]: Bytecode: Security mode set to "TrustSigned".
 7月 20 12:09:33 server1.yokensaka.com clamd[1034]: Loaded 3502516 signatures.
 7月 20 12:09:34 server1.yokensaka.com clamd[1034]: TCP: Bound to address 127.0.0.1 on port 3310
 7月 20 12:09:34 server1.yokensaka.com clamd[1034]: TCP: Setting connection queue length to 30
 7月 20 12:09:34 server1.yokensaka.com clamd[1034]: LOCAL: Socket file /var/run/clamav/clamd.s...ry
 7月 20 12:09:34 server1.yokensaka.com clamd[1034]: Can't unlink the socket file /var/run/clam...ck
 7月 20 12:09:34 server1.yokensaka.com clamd[1021]: Starting Clam AntiVirus Daemon: ERROR: LOC...ry
 7月 20 12:09:34 server1.yokensaka.com clamd[1021]: ERROR: Can't unlink the socket file /var/r...ck
 7月 20 12:09:34 server1.yokensaka.com clamd[1021]: [失敗]
 7月 20 12:09:34 server1.yokensaka.com systemd[1]: clamd.service: control process exited, code...=1
 7月 20 12:09:34 server1.yokensaka.com systemd[1]: Failed to start SYSV: Clam AntiVirus Daemon.....
 7月 20 12:09:34 server1.yokensaka.com systemd[1]: Unit clamd.service entered failed state.
Hint: Some lines were ellipsized, use -l to show in full.

ソケットファイルが見つからないというエラーで clamd が起動しなくなる。原因はcentos7では/ver/runがtempfsになったので再起動後にはディレクトリ等全て消えてしまう。なのでソケットファイルが見つからないというエラーになるのではと思う。

■手動でソケット用ディレクトリーを作成してclamdを起動させてみる

[root@server1 ~]# mkdir /var/run/clamav
[root@server1 ~]# chown -R clamav:clamav /var/run/clamav
[root@server1 ~]# chmod -R 700 /var/run/clamav
[root@server1 ~]# systemctl start clamd
[root@server1 ~]# systemctl status clamd
clamd.service - SYSV: Clam AntiVirus Daemon is a TCP/IP or socket protocol server.
   Loaded: loaded (/etc/rc.d/init.d/clamd)
   Active: active (running) since 日 2014-07-20 12:02:43 JST; 7s ago
  Process: 2583 ExecStart=/etc/rc.d/init.d/clamd start (code=exited, status=0/SUCCESS)
 Main PID: 2586 (clamd)
   CGroup: /system.slice/clamd.service
           └─2586 clamd

 7月 20 12:02:42 server1.yokensaka.com clamd[2586]: ELF support enabled.
 7月 20 12:02:42 server1.yokensaka.com clamd[2586]: Detection of broken executables enabled.
 7月 20 12:02:42 server1.yokensaka.com clamd[2586]: Mail files support enabled.
 7月 20 12:02:42 server1.yokensaka.com clamd[2586]: OLE2 support enabled.
 7月 20 12:02:42 server1.yokensaka.com clamd[2586]: PDF support enabled.
 7月 20 12:02:42 server1.yokensaka.com clamd[2586]: SWF support enabled.
 7月 20 12:02:42 server1.yokensaka.com clamd[2586]: HTML support enabled.
 7月 20 12:02:42 server1.yokensaka.com clamd[2586]: Self checking every 600 seconds.
 7月 20 12:02:43 server1.yokensaka.com clamd[2583]: Starting Clam AntiVirus Daemon: [  OK  ]
 7月 20 12:02:43 server1.yokensaka.com systemd[1]: Started SYSV: Clam AntiVirus Daemon is a TCP/IP or socket protocol server..

起動できた

再起動後にディレクトリーを作成するように設定ファイルを編集(赤字の部分を追記)

[root@server1 ~]# vi /etc/init.d/clamd
#!/bin/sh
#
# Startup script for the Clam AntiVirus Daemon
#
# chkconfig: 2345 61 39
# description: Clam AntiVirus Daemon is a TCP/IP or socket protocol \
#              server.
# processname: clamd
# pidfile: /var/run/clamav/clamd.pid
# config: /etc/clamav.conf

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

[ -x /usr/sbin/clamd ] || exit 0

start(){
        echo -n "Starting Clam AntiVirus Daemon: "
        #再起動後にclamavのdirを作成
        mkdir /var/run/clamav > /dev/null 2>&1
        schown clamav:clamav /var/run/clamav > /dev/null 2>&1
        daemon clamd
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/clamd
        return $RETVAL
}

stop() {
        echo -n "Stopping Clam AntiVirus Daemon: "
        killproc clamd
        rm -f /var/clamav/clamd.socket
        rm -f /var/run/clamav/clamav.pid
        RETVAL=$?
        echo
        ### heres the fix... we gotta remove the stale files on restart
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/clamd
        return $RETVAL
}

restart() {
        stop
        start
}

# See how we were called.
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  status)
        status clamd
        RETVAL=$?
        ;;
  restart|reload)
        restart
        ;;
  condrestart)
        [ -e /var/lock/subsys/clamd ] && $0 restart
        RETVAL=$?
        ;;
  *)
        echo "Usage: clamd {start|stop|status|restart|reload|condrestart}"
        exit 1
esac

exit $RETVAL

2015/1/2追記
以前はclamdの設定ファイルを編集していたが、/etc/tmpfiles.d/にclamd.confを追記することで、OS起動時に/var/run/clamavディレクトリを作成できるように変更

[root@server1 ~]# vi /etc/tmpfiles.d/clamd.conf
d /var/run/clamav 0755 root root - ← 追加
[root@server1 ~]# systemd-tmpfiles --create clamd.conf

systemdをリロード
[root@server1 ~]# systemctl daemon-reload
clamdを再起動
[root@server1 ~]# systemctl restart clamd

■確認

[root@server1 ~]# reboot

[root@server1 ~]# systemctl status clamd
clamd.service - SYSV: Clam AntiVirus Daemon is a TCP/IP or socket protocol server.
   Loaded: loaded (/etc/rc.d/init.d/clamd)
   Active: active (running) since 金 2015-01-02 16:24:11 JST; 30s ago
  Process: 1005 ExecStart=/etc/rc.d/init.d/clamd start (code=exited, status=0/SUCCESS)
 Main PID: 1480 (clamd)
   CGroup: /system.slice/clamd.service
           └─1480 clamd

 1月 02 16:24:10 server1.yokensaka.com clamd[1480]: ELF support enabled.
 1月 02 16:24:10 server1.yokensaka.com clamd[1480]: Detection of broken executables enabled.
 1月 02 16:24:10 server1.yokensaka.com clamd[1480]: Mail files support enabled.
 1月 02 16:24:10 server1.yokensaka.com clamd[1480]: OLE2 support enabled.
 1月 02 16:24:10 server1.yokensaka.com clamd[1480]: PDF support enabled.
 1月 02 16:24:10 server1.yokensaka.com clamd[1480]: SWF support enabled.
 1月 02 16:24:10 server1.yokensaka.com clamd[1480]: HTML support enabled.
 1月 02 16:24:10 server1.yokensaka.com clamd[1480]: Self checking every 600 seconds.
 1月 02 16:24:11 server1.yokensaka.com clamd[1005]: Starting Clam AntiVirus Daemon: [  OK  ]
 1月 02 16:24:11 server1.yokensaka.com systemd[1]: Started SYSV: Clam AntiVirus Daemon is a TC.....
Hint: Some lines were ellipsized, use -l to show in full.

自動起動できた。

■epel.repoでclamを除外 2015年2月14日追記
Clam AntiVirusはRepoforgeリポジトリのものを使っているが、Repoforgeリポジトリとepelリポジトリの両方を有効にしていると、Clam AntiVirusのyum updateでエラーになり、全てのupdateが出来なくなるので、epel.repoでclamを除外しておく。

[root@server1 ~]# vi /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1 ← 1 に設定
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
exclude=clam* ← clamはRepoforgeのものを使うのでepelのclamは除外