Застосувати зміни або перезапустити тире / пускач Unity /… без перезавантаження або виходу


14

Я потрапив у ситуацію, коли програма, яка у мене була, недоступна в об'єктиві програм Unity після того, як я видалив користувальницький .desktopфайл запуску з мого домашнього каталогу, який змінив загальносистемний файл.

Моя проблема полягала в тому, що мені потрібно було застосувати ці зміни та оновити в цьому випадку базу даних встановлених .desktopфайлів, але інші подібні сценарії також можна уявити.

Отже, що я міг би зробити (і зробити наступний раз) замість перезавантаження або виходу з системи та повернення назад, щоб оновити конфігурацію Unity та змусити її перезавантажити та повторно реалізувати всі її речі?

Я 15.10, тому unity --reset &не працює, бо застаріла.

Потім я спробував unity --replace &натомість, але це розбило робочий стіл і зробило мій TTY7 непридатним. Спочатку воно спалахнуло темно і виглядало так, ніби він перезапускав Unity та відновлював робочий стіл, але потім вже ні на що не реагував. Перехід на TTY1 і назад залишив мене з чорним екраном та курсором миші. Після перезавантаження через TTY1 логін reboot, він знову працював, і Unity навіть зараз розпізнав мою програму.

Але якби я опинився в ситуації, коли перезавантаження або вихід із системи не було можливим, який би я був шлях?


1
ви можете спробувати setsid unity, це "оновить" єдність. На одній з моїх установок це робиться так, на іншому це призводить до виходу з системи. Інші, здається, кажуть, що це повертається до стандартних налаштувань.
дог

Відповіді:


33

Натисніть Alt+ F2введіть unityі натисніть Enter.


3
Простий, але геніальний. Я поняття не маю, чому ніхто раніше про це не думав. Я не знаю, скільки Unity перезапускається, але, безумовно, достатньо, щоб розпізнати перекриті файли .desktop. Дякую! Я нагороджую вас за кілька днів, чекаючи подальших відповідей.
Байт-командир

1
Вітаємо вас з першим щедротою @padlyuck! : D
Байт-командир

9
Я зробив це в 16.04 і заплутав свої вікна, а деякі програми закрилися (наприклад, браузер).
Даніель

Чи можете ви, будь ласка, детальніше розглянути це? Що саме це робить?
Джордж Д

1
Остерігайтеся - я зробив це 14.04, і він вимкнув X (і всі додатки), і мені довелося знову увійти.
davidA

6
  • Unity - це лише плагін Compiz. Ви можете його перезавантажити, використовуючи:

    compiz --replace
    

    Або дозволити вам закрити термінал

    compiz --replace & disown
    

    Для підтвердження ви можете перевірити:

    $ file `which unity`
    /usr/bin/unity: Python script, ASCII text executable
    
    $ more /usr/bin/unity
    
  • Інший спосіб, легкий перезавантажте лише плагін (дуже швидко)

    1. Створіть compiz_plugin_reloaderсценарій

      Джерело: Блог iXce : Перезавантажувач плагінів Compiz

      #!/usr/bin/env python
      
      '''Compiz plugin reloader (through compizconfig)
      Copyright (c) 2007 Guillaume Seguin <guillaume@segu.in>
      Licensed under GNU GPLv2'''
      
      import compizconfig
      from sys import argv, exit
      from time import sleep
      
      if __name__ == "__main__":
          if len (argv) < 2:
              print "Usage : %s plugin1 [plugin2 ... pluginN]" % argv[0]
              exit (2)
          plugins = argv[1:]
          context = compizconfig.Context (basic_metadata = True)
          print "Unloading " + " ".join (plugins)
          for plugin in plugins:
              if plugin not in context.Plugins:
                  print "Warning : %s plugin not found" % plugin
                  plugins.remove (plugin)
                  continue
              context.Plugins[plugin].Enabled = False
          if len (plugins) == 0:
              print "Error : no plugin found"
              exit (1)
          context.Write ()
          print "Waiting for settings update"
          sleep (2)
          print "Loading " + " ".join (plugins)
          for plugin in plugins:
              context.Plugins[plugin].Enabled = True
          context.Write ()
    2. Виправлення дозволів

      chmod +x compiz_plugin_reloader
      
    3. Виконувати як:

      ./compiz_plugin_reloader unityshell
      
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.