Windowsにはタスクを自動化する方法がいくつかあります。最も一般的なツールはWindowsのタスクスケジューラですが、使用している場合 Linux用のWindowsサブシステム(WSL) WSLインストールのバックグラウンドでタスクを実行するCronデーモンもあります。
Cronはデフォルトでは実行されていません
Windows 10とWindows 11では、CronにはUbuntuのようなLinux環境に含まれています。トラブルは、WSLが自動的にCronを起動しないことを意味します。つまり、自動タスクはデフォルトで実行されません。
これを修正するには、コマンドラインを開くたびにCronを手動で起動することができますが、手動でタスクを自動化することになっているツールを起動することは、ポイントを欠いているようなものです。
幸いなことに、これを修正する簡単な方法があり、タスクスケジューラを使用する必要があります。
タスクを実行するためにLinuxでCronを使用したことがない場合は、以前のチュートリアルをチェックしてください。 Linuxでタスクをスケジュールする方法 。ここでの目的のために、あなたがあなたのWSLのインストールにいくつかのcronジョブを作成していると仮定し、あなたが常にBaviditing Cronの代わりに実行するのを助ける必要があると仮定します。
このチュートリアルでは、私たちは使い方をします
sudoサービス
Cronをチェックして開始するには、Ubuntuのモダンなビルドでサービスを停止して開始するための推奨される方法です.WSLの最も一般的な配布。
また、このチュートリアルでは、WSLのバージョンの管理者権限があると想定しています。 PCの唯一のユーザーであれば、自分でWSLを有効にした場合は、管理者権限があります。
ヒント: これは中です Windows 11上のLinux用のWindowsサブシステム Windows 10だけではありません。
関連している: Linux上のタスクをスケジュールする方法:crontabファイルの概要
Linuxを準備します
私たちがしなければならない最初のことは、コンピュータがパスワードなしでcronを起動することを可能にすることです。 Cronのようなサービスを開始すると、コマンドを使用します。
SUDO SERVICE CRONスタート
。しかし、そのコマンドはパスワードを必要とし、どのWindowsは起動時にアクセスできない。これを回避する方法は、このコマンドのパスワードの要件をオフにすることです。
そのためには、WSL端末ウィンドウを開き、入力してください。
sudo visudo
。キーボードにEnterキーを押しながらLinuxのパスワードを入力し、もう一度Enterキーを押します。 Ubuntuを使用している場合、これは初心者に優しい "sudoers"ファイルを開きます
ナノコマンドラインテキストエディタ
。
節約
ユーザーの特権とアクセス権を変更できるシステム管理者のファイルです。
sudoersファイルの下部に次のコマンドを追加し、Ctrl + Oを押して保存し、Ctrl + Xを押してファイルを終了します。
%SUDO ALL = NOPASSWD:/ USR / SBIN /サービスCron Start
このsudoersコマンドは、sudoコマンドを使用するのに十分な特権を持っているユーザー(それに含めるべき)がコマンドを実行するためのパスワードを必要としないと言います。
SUDO SERVICE CRONスタート
Cronデーモンを起動します。
ファイルを保存したら、コマンドが入力してそのジョブを実行していることを確認できます。
SUDO SERVICE CRONスタート
そして、パスワードを尋ねずにCronを起動する必要があります。それがうまくいった場合は、次の手順で作成しているタスクが正しく機能するように、再度Cronをオフにしましょう。それをするために、走ってください
SUDO SERVICE CRON停止
。
WindowsタスクスケジューラでCronを設定します
それはCron Automationへの私たちの旅の段階の1です。タスクスケジューラでパート2に進みましょう。キーボードのWindowsキーをタップしてから、「タスクスケジューラ」を検索します。 「タスクスケジューラ」ショートカットを起動します。
起動すると、[アクション]セクションの下にあり、[基本タスクの作成]を選択します。
これにより、基本的なタスクウィザードが開きます。まず、タスクに名前を付けるように依頼し、それに説明を与えるつもりです。あなたはここに欲しいものは何でも入力することができます。タスク「Cron」と呼び、説明は「システム起動時にCronを起動するタスク」です。さて、「次へ」ヒットしましょう。
次のセクションでは、ビジネスに降ります。まず、ウィンドウはタスクを実行したいときに知りたいです。 [コンピュータが起動したら]ラジオボタンを選択して[次へ]をクリックします。
次のセクションでは、「プログラムを起動します」。そのオプションはデフォルトで選択されているため、[次へ]をクリックします。
さて、私たちが実行したいプログラムを指定する必要があります。これはWSLです。以下を「プログラム/スクリプト」テキスト入力ボックスに入力します。
C:\ windows \ system32 \ wsl.exe.
私たちはこれまでに行われたすべてのものはWSLを起動しますが、WSLの中には、Cronを起動するように言う必要があります。そのため、[引数の追加]ボックスに追加します。
sudo / usr / sbin / service cron start.
もう一度「次」をクリックし、「完了をクリックしたときにプロパティダイアログを開く」と表示されているボックスをオンにして、[完了]をクリックします。
タスクが作成されますが、すべてがうまく機能することを確認するための最終的なことを1つしなければなりません。新しいウィンドウが開き、作成したタスクの概要が表示されますが、ログオンしたときにのみ実行するように設定されています。 「ユーザーがログオンしているかどうかを実行するかどうかを実行するかどうか」と表示されているラジオボタンを選択して、[OK]を押します。
さて、2つの方法で私たちのタスクをテストしましょう。まず、タスクスケジューラのメインウィンドウで、タスク名が表示されるまでスクロールします。 「Cron」という名前を使用した場合は、リストの先頭に見られるはずです。タスクを右クリックして[実行]を選択します。
次に、WSL端末に戻って入力します
SUDO SERVICE CRONの状況
そして、それはCronが実行中であると言うべきです。そうでなければ、前の手順ですべてを正しく入力したことを再確認します。
最初の小切手ですべてが正しく機能していたら、大きなテストの時間です。 PCを再起動し、戻ってきたら、WSL端末を開いて実行します。
SUDO SERVICE CRONの状況
そのクローロンが現在実行されていることを報告する必要があります。
おめでとう!あなたはあなたの最初のステップをより大きな、自動化された世界に連れて行きました。バックグラウンドで実行されているCronを使用すると、WSLで設定したCronJobは自動的にスケジュールで実行されます。