مسیر رو یکجا اشتباه رفتی. با update-rc.d لینکهای SysV رو دست زدی و در عین حال AppArmor رو از runlevel اوپنRC هم بیرون انداختی، برای همین بعد از ریبوت «stopped» موند و در rc-update show هم دیده نشد.
۱ )
اسکریپت و ابزارها را مطمئن کن
sudo apt-get install --reinstall apparmor apparmor-utils۲ )
AppArmor را به runlevel درستِ OpenRC برگردان
sudo rc-update add apparmor sysinit
sudo rc-update -u
۳ )
همین الان استارتش کن و چک کن
sudo rc-service apparmor start
aa-status
rc-status --servicelist | grep apparmor
dmesg | grep -i apparmor | tail -n +1اگر همهچیز درست باشد: aa-status تعداد پروفایلها را نشان میدهد و در rc-status وضعیت started میبینی.
- - -
حالا برگرد به این لینک :
و از این قسمت شروع کن به انجام دادن :
- - -
وقتی اسکریپت stop سرویس بیمعنی یا خراب است (مثل AppArmor در دبیان که پیام میدهد: Action 'stop' is meaningless) و در زمان خاموشی ارور failed to stop میبینی.
- - -به عبارت دیگه راه حل فعال کردن
zap رو برو .
- - -
چند نکته مهم
OpenRC از runlevelهای خودش استفاده میکند (sysinit, boot, default, shutdown). دستکاری با update-rc.d (لینکهای /etc/rc?.d/) به OpenRC ربطی ندارد و کمکی به استارتشدن سرویس در بوت نمیکند.
اگر قبلاً با update-rc.d -f apparmor remove لینکهای SysV را حذف کردهای، مشکلی نیست؛ فقط یادت باشد برای بوت شدن تحت OpenRC، همین rc-update add apparmor sysinit تعیینکننده است.
اگر خواستی لینکهای SysV را برگردانی (ضروری نیست)، میتوانی بگویی:
sudo update-rc.d apparmor defaultsولی باز هم استارتِ واقعیِ بوتِ تو با rc-update کنترل میشود.
- - -