Web・IT うんたらら

業務系とWeb系の狭間でIT業界を彷徨いながら備忘録と足跡を残していきます

umountが終わらなくても焦っちゃだめよという話

※この記事は、Linux系サーバエンジニアにとってはごく当たり前の内容かと思われます。あくまで自分用メモということで。

外付けハードディスクに対して、容量少ないファイルを大量に作成後、umountしたら30分ぐらい経っても終わらないよ…Ctrl+Cしてもキャンセルしてないし……これ引っこ抜いてもいい……?という状況に陥りました。が、結論としては待ってれば終わります。

デフォルトでマウントするとasync(非同期)モードでマウントするため、とりあえずメモリバッファに書き込むんですね。
で、umount時にsyncコマンドが実行されるわけですが、今回のケースでは1件あたりの容量が少なかったため、メモリバッファに収まってしまったにもかかわらず、ファイル数が多かったため非常に時間がかかってしまったと、そういうことでした。

もし知らなかった人いたら気をつけてね!!

というお話でした。

Swiftでライトやバイブレーションを使う

ちょいちょいObjective-Cの場合と違いますね。

ライトを付ける

前提として、XCodeの[Targets] -> [プロジェクト名] -> [General] -> [Linked Frameworks and Libraries] から、AVFoundation.frameworkを追加しておく必要があります。

まず、Objective-Cの場合

#import <AVFoundation/AVFoundation.h>
            :
AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
[device lockForConfiguration:NULL];
device.torchMode = AVCaptureTorchModeOn;   //On
//device.torchMode = AVCaptureTorchModeOff; //Off
[device unlockForConfiguration];

Swiftの場合

import AVFoundation
            :
let device = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeVideo)
device.lockForConfiguration(nil)
device.torchMode = AVCaptureTorchMode.Off //On
//device.torchMode = AVCaptureTorchMode.On //Off
device.unlockForConfiguration()

swiftになって列挙型(enum)がいい感じになりましたね。

バイブレーションさせる

Objective-Cの場合

#import <AudioToolbox/AudioServices.h>
            :
AudioServicesPlayAlertSound(kSystemSoundID_Vibrate);

Swiftの場合

import AudioToolbox
            :
AudioServicesPlaySystemSound(SystemSoundID(kSystemSoundID_Vibrate))

こんな風にキャストする必要があります。


※余談ですがSwiftってはてなブログスーパーpre記法対応してないんですね…。

佐賀を中心にしたB級グルメ系ブログやってます

こんなのやってます。


佐賀もぐもぐ


やってました。


佐賀もぐもぐ



佐賀や佐世保などにお越しの際は参考にどうぞ。

田舎は食の情報も入手しづらいです。まずブログが少ない。
タウン情報誌やフリーペーパーは常連の地元競合チェーンに牛耳られている。
食べログのレビューも偏り&過疎すぎてあてにならない。

ということで個人のメモ用に始めた次第です。