Ubuntuはcrontabで「@reboot」をサポートしていますか?


23

Ubuntu @rebootはcrontabでサポートしていますか?

サポートされていることを示唆するドキュメントがありますが、Webチャットではサポートされていないと主張しています。

@rebootセクションを機能させることはできません。「深夜以降」セクションは正常に機能します。

以下はmyのテスト例/etc/crontabです。

$ cat /etc/crontab
# /etc/crontab: system-wide crontab

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
##

# in the beginning - 
@reboot /var/kiosk/btest.sh

# after midnight
30 0     * * *   root    /etc/cron.daily/kiosk/kioskReboot.sh

# end of crontab

シェルスクリプト btest.sh

#!/bin/bash
date > /var/kiosk/STARTFLAG.txt
echo we booted >> /var/kiosk/STARTFLAG.txt
date
echo we booted

許可

$ ls -l btest.sh
-rwxrwxrwx 1 root root 147 Aug 21 15:19 btest.sh
$ ls -ld
drwxrwxrwx 14 laptopsanytime root 4096 Aug 21 16:30 .


スクリプトbtest.sh、自動起動の作成について考えましたか。askubuntu.com/a/9388/2973
wojox

Unixの&Linuxの上の偉大な答えはあります[crontabファイルの@rebootはrootのみのために働く?] [1] [1]:unix.stackexchange.com/q/109804/17362
エドゥアール・ロペス

私はこのようなルックス、[OK]を動作します私の個人のcrontab @rebootルールを持っている:@reboot sh /home/me/run-stuff.sh
taneli

誰も手に入らない場合:彼はcrontabを混同しています:/ etc / crontabはユーザーcrontabであり、ユーザーを必要とします。crontab -eは個人のcrontabであり、編集時にアクティブなユーザーを使用するため、ユーザー名は不要です。どちらも@rebootを受け入れます。
リンツウィンド

回答:


21

@rebootはUbuntuでサポートされています。エントリーの理由

@reboot /var/kiosk/btest.sh

/ etc / crontabで機能しないのは、ユーザーフィールドが欠落しているためです。正しい構文は

@reboot root /var/kiosk/btest.sh

2
少なくとも14.04では、これは事実ではなく、間違っています。「man 5 crontab」でも言及されていません。おそらくバージョンに依存しますが、私はそれを疑います。
vorburger 16

1
@vorburger @rebootがサポートされていないという場合は、サポートするというwikiへリンクがあります。ところで、私の14.04で、man 5 crontab@reboot
-Fr0zenFyr

4
私のUbuntu 14.04で、一部のユーザーを持つようにsomeuser自動的に(再)起動時にコマンドを実行することは、私はに追加する必要がありました、そのユーザーの crontabのエントリをせずにユーザー名を指定:@reboot /var/kiosk/btest.sh
Abdull

1
議論に加えて、ubuntu 16.4.05を使用しています。ユーザーのcrontabを使用する場合、@ rebootコマンドは、実行するユーザーを指定せずに機能しますが、ユーザーが指定されている場合は機能しません。
キースレイノルズ

1

Ubuntu 16.04.5 LTS:ルートとして:

crontab -e

次の行を追加します。

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
@reboot /path_to_script.sh 2>&1 >> /path_to_log.log

2>&1 >>はstdoutを/path_to_log.logに出力するため、これをトラブルシューティングできます


0

で定義されているジョブとして18.04で動作しcron.dます。
これをジョブファイルに入力しました。

PATH = / usr / local / sbin:/ usr / local / bin:/ usr / sbin:/ usr / bin:/ sbin:/ bin
@reboot root /path/to/script.sh


1
ルートを追加しても機能しませんでした。ルートとしてcrontab -eを使用しましたか?
MKZ

/etc/cron.dディレクトリのstart_at_rebootファイルに保存しました
TheR
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.