freeSSHdService を自動 (遅延開始)に設定

「スタートアップの種類」の初期状態は「自動」となっている.これを「自動 (遅延開始)」に変更し,私が抱えたトラブル「Windows 起動時に SSH サーバが開始されない」が解決できた.

この操作をする前は,ログに,

01-06-2010 19:55:55 Error in starting SSH server: The specified address is not available.
01-06-2010 19:55:55 Tray icon not show (no admin rights)

と出て,SSH サーバが働かなかった.手動でサービスを再起動すると,うまくいく.Windows 起動直後だとなにかまずいのだろうか.ルータから IP アドレスをもらう前に,とあるアドレスで SSH サービスを始めようとしているためかもしれない.Vista 時代では,IP アドレスは自称させていた.7 に入れ替えた今は,ルータ側で IP アドレスを固定している.

Windows 起動直後でなく,少し後に freeSSHdService を開始させると良いだろうと考えた.「スタートアップの種類」の「自動 (遅延開始)」はこの要求に合致したものだった.

どのような遅延方法なのかというと、通常の自動開始サービスの約 2 分後に開始されるというものです。

サービスマネージャーを開き、手動で設定することはできますが、今回は、プログラムで設定する方法を紹介します。

サービスプログラムの自動起動を遅延実行に変更する

上の引用はプログラミング面で触れているものだが,おおよそ 2 分後に freeSSHdService.exe が SYSTEM ユーザの下で開始された.このときのログはおおよそ期待通りのものになった*1

01-06-2010 20:06:34 SSH server started.
01-06-2010 20:06:34 Tray icon shown (admin logged in)

*1:トレイアイコンが表示されない問題は続いている