web-dev-qa-db-ja.com

「/etc/rc.local互換性のために開始ジョブが実行されています」:修正方法

今日、Ubuntu Vivid(15.04)にアップグレードしたばかりで、再起動後、非常に長いブートプロセスを経験しました。私のラップトップは通常5秒以内に起動しますが、数分経っても終了しませんでした。

押す Esc 次の画面を示しました。

enter image description here

最後の行には、「/ etc/rc.localとの互換性のために開始ジョブが実行されています(7分24秒/制限なし)」と記載されています。 「制限なし」の部分にもかかわらず、ちょうど10分後にあきらめ(または完了?)、ブートプロセスが終了しました。

これはすべてのブートで発生します。

Systemdへの移行に関連しているでしょうか?どうすれば修正できますか? (今は、ラップトップをシャットダウンする前に考え直します)。バグを報告する必要がありますか?もしそうなら、どこで?

私の/etc/rc.localファイル:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
fstrim -v /
fstrim -v /home
exit 0

ファイルは実行可能です:

$ ls -l /etc/rc.local
-rwxr-xr-x 1 root root 333 aug 14  2013 /etc/rc.local

Easy Linux tips project の指示に従って、SSDをインストールした2年前に2つのfstrim行を追加しました。

どうやらこれらは私の問題の原因です(私はそれらを削除して再起動しました-問題はなくなりました)。また、ブート時にfstrimを実行するにはどうすればよいですか?

4
Cos64

rc.localに長時間実行されるコマンドを配置すると、起動が遅れます。これらをバックグラウンドに送信する必要があります。

( fstrim -v /; fstrim -v /home ) &

とはいえ、おそらくこれを自分で行う必要はありません。 Ubuntu 14.10が追加されました fstrimの毎週の仕事

6
muru

奇妙なことに、これはUbuntu 15.04では突然問題になりますが、Ubuntu 14.04では常に問題なく動作します。

また、トリムの前にスリープパラメータを追加して、設定された秒数後に2つのトリムコマンドが実行されるようにすることもできます。これにより、ブートプロセスが完了し、トリムコマンドがバックグラウンドで実行されるようになります。

このように(40秒の遅延):

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
sleep 40
fstrim /
fstrim /home
exit 0

ちなみに、この場合、trimの-v(冗長)パラメーターはバックグラウンドで実行されているため使用できません。 Easylinuxtipsのハウツーでもこれを変更しました。

注: Ubuntu 14.04およびLinux Mint 17.xのrc.localでそのようなスリープパラメーターのみをテストしたため(トリム以外の目的で)、これが同様に機能するかどうかわかりませんUbuntu 15.04で。

2
Pjotr

私は同じ問題を抱えていました。基本的には、何らかのデーモンなどのrc.localの何かが正常に終了しないときに起こります。 rc.localのどのコマンドが単にkillall -9コマンド/from/etc.localの原因であるかを見つけるには、rc.localからのすべてのコマンドが終了するとリブートします。

1
Areeb Soo Yasir