(´・_・`) 今日も結婚できなかったのでusleepコマンドは廃止され近いうちに削除される というお話


今日も結婚できなかったクラスタの皆さんこんにちは。カノジョできないエンジニア Advent Calendar 2017の8日目、来る日も来る日も結婚できずカノジョもできずに毎晩オフトゥンでメソメソ泣きながら眠りにつく日々でございます。

どうやら2015年11月26日から結婚できなかったようですが、別にこの日以前に結婚できていたわけではありません。ちなみにツイでの初出は

こちらの模様。人さまへのレスでなく、ぼそっとつぶやくツイだとこちらが初出の模様。

定期的に今日も結婚できなかったとつぶやき始めた人はみそ味さんみたいですね。何故かはわかりませんが、2014年のクリスマスから今日も結婚できなかったツイが増えています。

年をまたいで2015年からは爆発的な今日も結婚できなかったブームが年間を通じて発生した模様。そして2016年には今日も結婚できなかったbotが発生(ちなみに作者は私じゃありません)。

usleep コマンドを使おうとしたら怒られが発生した

マイクロ秒単位でスリープできることに定評のある usleep コマンドですが、fedora27の環境で実行しようとしたら warning: usleep is deprecated, and will be removed in near future! と怒られが発生。

[nullpopopo@U24E-RED ~]$ usleep 768000
warning: usleep is deprecated, and will be removed in near future!
warning: use "sleep 0.768" instead...

[nullpopopo@U24E-RED ~]$ echo $?
0

一応コマンドそのものは正常終了しますね。ただ親切に警告が出るのはよいのですが、この警告は標準出力と標準エラー出力のどちらに出力されるのだろう・・・

[nullpopopo@U24E-RED ~]$ date ; usleep 768000 2> /dev/null ; date
2017年 12月  1日 金曜日 01:08:41 JST
2017年 12月  1日 金曜日 01:08:42 JST

標準エラー出力に出力されましたね。ということで、都合がよろしくなければ標準エラー出力だけ /dev/null 送りにしましょう。

sleepコマンドで代用してみた

てっきりsleepコマンドって整数値しか受け付けないもんだと思ってたら、GNU sleepって浮動小数点が使えるのですね。知らなかった。

[nullpopopo@U24E-RED ~]$ date ; sleep 0.768 ; date
2017年 12月  1日 金曜日 01:10:43 JST
2017年 12月  1日 金曜日 01:10:44 JST

日経Linux 2018年 01 月号

ちなみに Fedora 25 の環境では怒られが発生しなかった模様。なのでほんとつい最近の出来事なのですね。

[nullpopopo@U24E ~]$ cat /etc/redhat-release 
Fedora release 25 (Twenty Five)

[nullpopopo@U24E ~]$ date ; usleep 1 ; date
2017年 12月  1日 金曜日 01:34:13 JST
2017年 12月  1日 金曜日 01:34:13 JST

[nullpopopo@U24E ~]$ rpm -qf $(which usleep)
initscripts-9.69-1.fc25.x86_64

[nullpopopo@U24E ~]$ dnf info $(rpm -qf $(which usleep))
インストール済みパッケージ
名前        : initscripts
アーキテク  : x86_64
エポック    : 0
バージョン  : 9.69
リリース    : 1.fc25
容量        : 1.3 M
リポジトリ  : @System
From repo   : @commandline
概要        : Scripts to bring up network interfaces and legacy utilities
URL         : http://fedorahosted.org/releases/i/n/initscripts/
ライセンス  : GPLv2
説明        : This package contains the script that activates and deactivates most
            : network interfaces, some utilities, and other legacy files.

おまけ : usleep実行環境

[nullpopopo@U24E-RED ~]$ cat /etc/redhat-release 
Fedora release 27 (Twenty Seven)

[nullpopopo@U24E-RED ~]$ which usleep
/usr/bin/usleep

[nullpopopo@U24E-RED ~]$ rpm -qf $(which usleep)
initscripts-9.78-1.fc27.x86_64

[nullpopopo@U24E-RED ~]$ dnf info initscripts-9.78-1.fc27.x86_64
インストール済みパッケージ
名前         : initscripts
バージョン   : 9.78
リリース     : 1.fc27
アーキテクチ : x86_64
サイズ       : 1.2 M
ソース       : initscripts-9.78-1.fc27.src.rpm
リポジトリ   : @System
From repo    : updates
概要         : Scripts to bring up network interfaces and legacy utilities
URL          : https://github.com/fedora-sysv/initscripts
ライセンス   : GPLv2
説明         : This package contains the script that activates and deactivates most
             : network interfaces, some utilities, and other legacy files.

まとめ

(´・_・`) 今日も結婚できなかった