たとえば、今から8時間後にコマンドを実行する簡単な方法は何ですか?私はこのように考えることができます:
nohup bash -c "sleep 28800 ; ./mycommand.sh" &もっと適切な方法はありますか?
たとえば、今から8時間後にコマンドを実行する簡単な方法は何ですか?私はこのように考えることができます:
nohup bash -c "sleep 28800 ; ./mycommand.sh" &もっと適切な方法はありますか?
回答:
このatコマンドを使用できます。at後でコマンドを実行します。atユーティリティは、後で実行するために、AT-ジョブとして一緒にそれらを標準入力からコマンドを読み取り、グループなければなりません。
通常、atUbuntuではデフォルトでインストールされますが、リリースに含まれていない場合は、次の方法でインストールします。
sudo apt-get install at詳細、オプション、例などについては、Ubuntu Manpage Repositoryを参照してください
例:
at now +8 hours -f ~/myscript.shまた同様に、便利な速記を使用することができるtomorrowかnoonのように、
echo "tweet fore" | at teatime 警告:これにより、パイプの左側でコマンドがすぐに実行されますが、出力は後でのみ表示されます。この例は、アクションをにパイプする方法も示していますat。  at -c以下のように、スケジュールされたアクションを調べることができる方法です。
at -c 3at now +8 hours -f ~/myscript.sh
                    at 8:00、絶対時間にコマンドを実行する必要がありbatch、「コンピューターがアイドル状態になっているように見える場合」
                    teatime、午後4時です。いくつかの理由から、それはで言及していないmanpages.ubuntu.com/manpages/raring/man1/at.1posix.htmlが、それはでありman at、ここでmanpages.ubuntu.com/manpages/raring/en/man1/at.1.html。
                    gpio write 8 1すぐに実行できたため、4時間の3D印刷が失敗しました。
                    はい、cronジョブを設定できます。
たとえば、現在の時刻が14:39:00で、今日が8月30日の金曜日である場合、次のcronジョブ(8時間後に実行される)をcrontab -eコマンドを使用してcrontabファイルに追加できます。
39 22 30 8 5  /path/to/mycommand.sh詳細:
crontab削除するまで自分の中に残ります。一年後、誰がそこにそれを置いたのか、そしてなぜそれを忘れたとき、あなたはコマンドをどうするか疑問に思うようになります。
                    以下のためのGnomeベースのGUIを使用してcron、atなどが挙げられます:
CronHowtoの紹介では、gnome-scheduleGUI を使用することをお勧めします。これは、端末にすべてのゴミを入力するよりもはるかに優れています(特に、「パワー」* nix / bsdユーザーではない「平均」Ubuntuユーザーの場合)。
Unity Dash(または他のアプリケーションメニュー)を使用して実行し、Scheduled Tasksまたはrunning を探しますgnome-schedule。
GnomeベースのUbuntuシステムでは、アプリケーションのGnomeスケジュールタスクツール(gnome-scheduleパッケージから)-> System Toolsは、Cronの使用を促すグラフィカルインターフェイスを提供します。プロジェクトのWebサイトはhttp://gnome-schedule.sourceforge.net/にあります。ソフトウェアは、ソフトウェアセンターから、または次のように入力してインストールできます。
sudo apt-get install gnome-scheduleターミナルで。
を使用してgnome-schedule、ホームディレクトリのスクリプトに、このタイプのウィンドウを使用して新しい「at」コマンドを設定します。

私はそれが事であることを知る前に、これを行うための迅速で汚い方法を見つけましたat。
スクリプトを正午に実行するとします。
until [[ "$(date)" =~ "12:00:" ]]; do
    sleep 10
done
./mycommand.sh明日正午に実行したいとします(今日は11月24日です)。
until [[ "$(date)" =~ "25 12:00:" ]]; do 
    sleep 30
done
./mycommand.sh更新:やや良い方法:を使用して、気になる数字のみをテストしますdate +FORMAT:
until [[ $(date +%H:%M) == 21:06 ]]; do
    ...at、cronまたは任意の他の実スケジューラアプリケーション。タスクのスケジューリングは難しく、再発明すべきではありません。
                    at。
                    atは、ジョブが再起動後も存続するためです。
                    
nohup+ に何か問題がありsleepますか?なぜ「不適切」なのですか?