Home –  Archive
Monthly Archives: 9月 2015

CentOS7でrc.localないのでなんとかする(・_・;)

CentOS6まででは/etc/rc.d/rc.localファイルに起動時に実行したい事を書いておけば実行されるので
あんまり良くないとは思いつつもちょっとしたことをお手軽に書いてしまったりしてました(・_・;)

しかしCentOS7ではsystemdへ移行した為、/etc/rc.d/rc.localがなくなりました(((( ;゚д゚))))アワワワワ

これはイカン。
どうにかせねばと思い調べたら、サービスの設定するのが適当なのかなと。

また忘れないようにするためのメモ書きみたいなものですが・・・。

最小限のサービス設定をしてみたい。

/etc/systemd/system/ 配下にサービスの設定ファイルを置くことでサービスとして認識させる事ができるみたいです。
また、/usr/lib/systemd/system 配下にもサービスの設定ファイルがあるようですが色々のサイトを確認したところほとんどのサイトが/etc/systemd/system/ にファイルを置いていたので /etc/systemd/system/ にファイルを作成してみました。

ファイルの中身は下記のような感じとなります。このファイルをhoge_server.serviceとして保存しました。

[Unit]
Description=hoge server
#After=postgresql.service

[Service]
Type=simple
ExecStart=/home/vagrant/hoge_server.sh
User=vagrant

[Install]
WantedBy=multi-user.target

今回の場合、/home/vagrant/hoge_service.shが実行される設定となります。
[Unit]セクションのAfterを設定することにより予め実行が必要なサービス起動後に実行することが可能になりますので、データベース等を使用する場合設定する必要がありそです。(まだ使ってないです)

いくつかのサイトでType=simpeを[Unit]の部分に書いているサイトがありましたがそのようにした場合、下記のエラーが発生しました。

9月 13 17:30:29 localhost.localdomain systemd[1]: [/etc/systemd/system/hoge_server.service:2] Unknown lvalue ‘Type’ in section ‘Unit’

[Service]セクションに移動したところ、エラーが無くなったので[Service]セクションに書くのが妥当ではないかと思ってます(・_・;)

起動について

systemctl enable hoge_server.service

上記のようにすることでOS起動時に自動実行させることが可能です。

systemctl start hoge_server.service

この方法で手動で動作させることが出来ます。

### 動作ログについて

journalctl -u hoge_server.service

とかで確認する事ができますが、色々オプションあるのでわかっていません_| ̄|○

ログについては勉強しなきゃなぁと思っています・・・・

CentOS7でGstreamerを使う

CentOSを使っていてGstreamerを使いたくなったのですが、CentOSの標準のパッケージにはGstreamerがないのです。

EPELのリポジトリも使用することもおおいかと思いますがこちらも同様にマルチメディア系のパッケージが弱く、
Gstreamerを含めffmpegといったメジャーなもののパッケージもありません。

https://wiki.centos.org/TipsAndTricks/MultimediaOnCentOS7

さてどうしたものかなと思ってたらこんなのを見つけまして、この辺から調べた所EPELに加えてnux-desktopというリポジトリを追加するとyumでインストールできるようです。

rpm -Uvh http://ftp.riken.jp/Linux/fedora/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
yum install -y gstreamer1*
yum install -y ffmpeg

これでGstreamerとffmpegがインストールされましたヽ(=´▽`=)ノ

[vagrant@localhost ~]$ gst-inspect-1.0 --version
gst-inspect-1.0 version 1.0.7
GStreamer 1.0.7
http://download.fedoraproject.org
[vagrant@localhost ~]$ ffmpeg -version
ffmpeg version 2.6.3 Copyright (c) 2000-2015 the FFmpeg developers
built with gcc 4.8.3 (GCC) 20140911 (Red Hat 4.8.3-9)
configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --optflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic' --enable-bzlib --disable-crystalhd --enable-gnutls --enable-ladspa --enable-libass --enable-libcdio --enable-libdc1394 --disable-indev=jack --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-openal --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libv4l2 --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-x11grab --enable-avfilter --enable-avresample --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64 --enable-runtime-cpudetect
libavutil      54. 20.100 / 54. 20.100
libavcodec     56. 26.100 / 56. 26.100
libavformat    56. 25.101 / 56. 25.101
libavdevice    56.  4.100 / 56.  4.100
libavfilter     5. 11.102 /  5. 11.102
libavresample   2.  1.  0 /  2.  1.  0
libswscale      3.  1.101 /  3.  1.101
libswresample   1.  1.100 /  1.  1.100
libpostproc    53.  3.100 / 53.  3.100

こんな感じになりました。Gstreamerは1.07でffmpeg2.6.3のようです。