Windowsではタスクスケジューラを使うことで任意のタイミングでアプリケーションやサービスを実行することができる。この機能はUbuntuにも備わっており、よく使われる。
前回、Ubuntuの起動とシャットダウンを紹介したので、その流れで今回はUbuntuのタスクスケジューラを取り上げる。→連載「WindowsでUbuntuをはじめる」のこれまでの回はこちらを参照。
Ubuntuを起動
Ubuntuを起動する。スタートメニューから「Ubuntu on Windows」を選択すればよい。
「Ubuntu on Windows」を選択すると、上のようなターミナルアプリケーションが起動してくる。ここでUbuntuのコマンドを実行する。
Windowsのタスクスケジューラ
Windowsでは、タスクスケジューラで日時ベースまたはタイミングやイベントベースでアプリケーションやソフトウェア、コマンド、サービスの実行などを行える。
Windowsをデスクトップ用途で使っている場合、タスクスケジューラを使うことは少ないが、それでも作業の自動化を図ろうとすると使うタイミングが出てくる。一方、Windowsをサーバとして使っている場合は、タスクスケジューラを使う機会が増える。また、基幹機能として、タスクスケジューラはWindowsにとっても欠かすことのできない機能だ。
Ubuntuのcron
Ubuntuはサーバとして使われることが多い。このため、スケジューラベースでソフトウェアを実行する機能はUbuntuに欠かせない。これを実現する方法はいくつかあるが、デフォルトで用意されているcronが使われることが多い。
システムレベルのスケジュールは/etc/crontabに記述するほか、/etc/cron.d/ディレクトリ以下にファイルを配置することでも機能する。
この機能はユーザーレベルでも使え、ユーザーから使う場合はcrontabというコマンドを使用する。このコマンドを使って新しくスケジュールを組んだり編集したり、現在設定されているスケジュールを確認したりといったことができる。
Ubuntu on WSLのcronを試してみる
ユーザーから「crontab -e」とコマンドを実行すると、エディタが起動してくる。まだエディタの使い方を説明していないので、ここでは処理の流れだけ追ってもらえればと思う。
エディタが起動してきたら次の1行を書き込む。
crontab -eで起動してくるエディタに記入するデータ
*/1 * * * * /mnt/c/WINDOWS/system32/notepad.exe
この設定は「1分ごとにWindowsのメモ帳を起動する」という内容になっている。
crontab -eで編集した内容は、「crontab -l」で表示させることができる。
Ubuntuをサーバとして運用しだすと、このcronにいくつもスケジュールを組むようになってくる。その場合、時々crontab -lで現在設定されているスケジュールを一覧表示して確認を行うといったことをするようになる。