[Ubuntu][Systemd][自分用メモ] Systemdファイルの中でリダイレクトしたら、パラメータが有効になってなかった。

    Related Posts Plugin for WordPress, Blogger...

    自宅サーバのboot時に必要なパラメータを呼んで有効にしようと思った時に引っかかったのでメモ。

    以下の様な感じのスクリプトを呼ぶようにしていました。
    #!/bin/sh -e

    # Workaround unhandled rdmsr/wrmsr
    echo 1 >/sys/module/kvm/parameters/ignore_msrs

    # vnc start
    su kometch -c "vncserver :0"

    # Disable NCQ on all disks. (for raptors it increases the speed 30-40MiB/s)
    echo 1 > /sys/block/sda/device/queue_depth
    echo 1 > /sys/block/sdb/device/queue_depth

    hdparm -a 1024 /dev/sda
    hdparm -a 1024 /dev/sdb
    hdparm -a 1024 /dev/md0

    # ether offload off
    ethtool -K eth0 rx off tx off tso off
    ethtool -K eth1 rx off tx off tso off
    ethtool -K eth2 rx off tx off tso off
    ethtool -K eth3 rx off tx off tso off
    ethtool -G eth0 rx 512
    ethtool -G eth1 rx 512

    # To disable transparent huge pages:
    echo never > /sys/kernel/mm/transparent_hugepage/enabled

    echo auto > '/sys/bus/usb/devices/1-4/power/control'

    # OpenVswtich config
    ovs-vsctl set br ovsbr0 other_config:forward-bpdu=true
    ovs-vsctl set br ovsbr0 fail_mode=standalone
    ovs-vsctl set br ovsbr0 stp_enable=true

    実際にはsystemd的には最後にrc.localが呼び出されますが、せっかくSystemdで出来ないか試してみました。

    で、実際に最初に作成したsystemctlファイルは以下の様な感じです。
    [Unit]
    Description=Want to add startup parameters
    After=syslog.target network.target auditd.service
    After=openvswitch-switch.service
    After=local-fs.target

    [Service]
    Type=oneshot

    # Workaround unhandled rdmsr/wrmsr
    ExecStart=echo 1 >/sys/module/kvm/parameters/ignore_msrs

    # vnc start
    ExecStart=/bin/su kometch -c "vncserver :0"

    ExecStart=echo 1 > /sys/block/sda/device/queue_depth
    ExecStart=echo 1 > /sys/block/sdb/device/queue_depth

    ExecStart=/sbin/hdparm -a 1024 /dev/sda
    ExecStart=/sbin/hdparm -a 1024 /dev/sdb
    ExecStart=/sbin/hdparm -a 1024 /dev/md0

    # ether offload off
    ExecStart=/sbin/ethtool -K enp4s0f0 rx off tx off tso off
    ExecStart=/sbin/ethtool -K enp4s0f1 rx off tx off tso off
    ExecStart=/sbin/ethtool -K enp5s0f0 rx off tx off tso off
    ExecStart=/sbin/ethtool -K enp5s0f1 rx off tx off tso off
    ExecStart=/sbin/ethtool -G enp5s0f0 rx 512
    ExecStart=/sbin/ethtool -G enp5s0f1 rx 512

    # To disable transparent huge pages:
    ExecStart=echo never > /sys/kernel/mm/transparent_hugepage/enabled

    ExecStart=echo auto > '/sys/bus/usb/devices/1-4/power/control'

    # OpenVswtich config
    ExecStart=/usr/bin/ovs-vsctl set br ovsbr0 other_config:forward-bpdu=true
    ExecStart=/usr/bin/ovs-vsctl set br ovsbr0 fail_mode=standalone
    ExecStart=/usr/bin/ovs-vsctl set port bond0 fake_bridge=true

    [Install]
    WantedBy=multi-user.target

    で、この中でEchoを使用をしている部分についてパラメータが有効になっていませんでした。jounalctl上ではsuccessになっているのですが、どうやらリダイレクトが使えないらしいです。

    ということで以下のことを思い出して修正。

    sudoでリダイレクトをしたいとき - Web就活日記 /
    http://yut.hatenablog.com/entry/20111013/1318436872

    [Unit]
    Description=Want to add startup parameters
    After=syslog.target network.target auditd.service
    After=openvswitch-switch.service
    After=local-fs.target

    [Service]
    Type=oneshot

    # Workaround unhandled rdmsr/wrmsr
    ExecStart=/bin/bash -c 'echo 1 >/sys/module/kvm/parameters/ignore_msrs'

    # vnc start
    ExecStart=/bin/su kometch -c "vncserver :0"

    ExecStart=/bin/bash -c 'echo 1 > /sys/block/sda/device/queue_depth'
    ExecStart=/bin/bash -c 'echo 1 > /sys/block/sdb/device/queue_depth'

    ExecStart=/sbin/hdparm -a 1024 /dev/sda
    ExecStart=/sbin/hdparm -a 1024 /dev/sdb
    ExecStart=/sbin/hdparm -a 1024 /dev/md0

    # ether offload off
    ExecStart=/sbin/ethtool -K enp4s0f0 rx off tx off tso off
    ExecStart=/sbin/ethtool -K enp4s0f1 rx off tx off tso off
    ExecStart=/sbin/ethtool -K enp5s0f0 rx off tx off tso off
    ExecStart=/sbin/ethtool -K enp5s0f1 rx off tx off tso off
    ExecStart=/sbin/ethtool -G enp5s0f0 rx 512
    ExecStart=/sbin/ethtool -G enp5s0f1 rx 512

    # To disable transparent huge pages:
    ExecStart=/bin/bash -c 'echo never > /sys/kernel/mm/transparent_hugepage/enabled'

    ExecStart=/bin/bash -c 'echo auto > /sys/bus/usb/devices/1-4/power/control'

    # OpenVswtich config
    ExecStart=/usr/bin/ovs-vsctl set br ovsbr0 other_config:forward-bpdu=true
    ExecStart=/usr/bin/ovs-vsctl set br ovsbr0 fail_mode=standalone
    ExecStart=/usr/bin/ovs-vsctl set port bond0 fake_bridge=true

    [Install]
    WantedBy=multi-user.target

    bash -cで実行してやると大丈夫でした。
    ちなみにteeで実行した時はなぜか有効になりませんでした。こちらが有効にならないのはなぜなのかは不明です。

    以下のようにjounalにlogが出ないんですよね・・・
    m$ sudo journalctl -u boot_init.service
    -- Logs begin at Wed 2015-05-20 19:05:47 JST, end at Wed 2015-05-20 19:08:47 JST. --
    May 20 19:06:01 ubuntu-virt.kometch.local systemd[1]: Starting Want to add startup parameters...
    May 20 19:06:01 ubuntu-virt.kometch.local su[2637]: Successful su for kometch by root
    May 20 19:06:01 ubuntu-virt.kometch.local su[2637]: + ??? root:kometch
    May 20 19:06:01 ubuntu-virt.kometch.local su[2637]: pam_unix(su:session): session opened for user kometch by May 20 19:06:05 ubuntu-virt.kometch.local hdparm[3354]: /dev/sda:
    May 20 19:06:05 ubuntu-virt.kometch.local hdparm[3354]: setting fs readahead to 1024
    May 20 19:06:05 ubuntu-virt.kometch.local hdparm[3354]: readahead = 1024 (on)
    May 20 19:06:05 ubuntu-virt.kometch.local hdparm[3359]: /dev/sdb:
    May 20 19:06:05 ubuntu-virt.kometch.local hdparm[3359]: setting fs readahead to 1024
    May 20 19:06:05 ubuntu-virt.kometch.local hdparm[3359]: readahead = 1024 (on)
    May 20 19:06:05 ubuntu-virt.kometch.local hdparm[3362]: /dev/md0:
    May 20 19:06:05 ubuntu-virt.kometch.local hdparm[3362]: setting fs readahead to 1024
    May 20 19:06:05 ubuntu-virt.kometch.local hdparm[3362]: readahead = 1024 (on)
    May 20 19:06:05 ubuntu-virt.kometch.local ovs-vsctl[3384]: ovs|00001|vsctl|INFO|Called as /usr/bin/ovs-vsctl May 20 19:06:05 ubuntu-virt.kometch.local ovs-vsctl[3386]: ovs|00001|vsctl|INFO|Called as /usr/bin/ovs-vsctl May 20 19:06:05 ubuntu-virt.kometch.local ovs-vsctl[3388]: ovs|00001|vsctl|INFO|Called as /usr/bin/ovs-vsctl May 20 19:06:06 ubuntu-virt.kometch.local systemd[1]: Started Want to add startup parameters.


    ソフトウェア デザイン 2015年 02月号 [雑誌]
    技術評論社(2015-01-17)
    売り上げランキング:


    Pagination

    Trackback

    Trackback URL

    http://kometchtech.blog.fc2.com/tb.php/1873-19bf40b9

    Comment

    Post Your Comment

    コメント登録フォーム
    公開設定

    Utility

    Profile

    kometch

    Author:kometch
    なんちゃってエンジニアです。
    2009年10月から業務都合により大阪勤務になりました。
    2010年1月、HYBRID W-ZERO3を購入しました。
    2010年11月、HTC Desire HDを購入しました。
    2012年2月、都内の会社に転職しました。
    2012年5月、HTC One Xを購入しました。
    2012年8月、事情により休職しました。
    2012年8月、SONY Xperia SXを購入しました。
    2013年1月、一身上の都合により退職しました。
    2014年3月、都内の会社に就職しました。
    2016年8月、HPC系の会社に転職しました。

    Amazonほしい物リスト
    何か問題などありましたら、こちらまで。 Twitter:@kometchtech follow us in feedly

    カレンダー

    05 | 2017/06 | 07
    - - - - 1 2 3
    4 5 6 7 8 9 10
    11 12 13 14 15 16 17
    18 19 20 21 22 23 24
    25 26 27 28 29 30 -

    全記事(数)表示

    全タイトルを表示

    バロメーター

    カテゴリー

    カテゴリークラウド

    アーカイブ

    検索フォーム

    FC2カウンター

    現在の閲覧者数

    現在の閲覧者数:

    Amazon アフィリエイト

    スポンサードリンク

    Latvia Time

    IPv4/IPv6

    月間ページランキング

    ブログパーツ

    サイトランキング

    スポンサードリンク