재부팅 또는 로그 아웃없이 변경 사항 적용 또는 Unity 대시 / 런처 /… 재시작


14

.desktop시스템 전체 파일을 재정의 한 홈 디렉토리에서 사용자 정의 실행기 파일을 제거한 후 Unity 애플리케이션 렌즈에서 사용할 수 없었던 애플리케이션을 사용할 수 없었습니다.

내 문제는 변경 사항을 적용 하고이 경우 설치된 .desktop파일 의 데이터베이스를 업데이트해야 했지만 다른 유사한 시나리오도 상상할 수 있다는 것입니다.

따라서 재부팅하거나 로그 아웃 한 후 다시 로그인하는 대신 Unity 구성을 업데이트하고 모든 항목을 다시로드하고 다시 초기화하도록하는 대신 무엇을 할 수 있었습니까 (다음에 수행 할 수 있습니까)?

15.10에 있으므로 unity --reset &더 이상 사용되지 않으므로 작동하지 않습니다.

그런 다음 unity --replace &대신 시도했지만 바탕 화면이 손상되어 TTY7을 사용할 수 없게되었습니다. 처음에는 어두워졌고 Unity를 다시 시작하고 데스크탑을 복원하는 것처럼 보였지만 더 이상 반응하지 않았습니다. TTY1로 전환하고 다시 검은 화면과 마우스 커서로 나를 떠났습니다. TTY1 로그인 및를 통해 재부팅 한 후 다시 reboot작동했으며 Unity는 이제 내 응용 프로그램을 인식했습니다.

그러나 재부팅 또는 로그 아웃이 옵션이없는 상황에 처한 경우 어떻게해야합니까?


1
당신은 시도 할 수 있습니다 setsid unity, 그것은 '새로 고침'통일입니다. 내 설치 중 하나에서는 설치가 완료되고 다른 설치에서는 로그 아웃됩니다. 다른 사람들은 그것이 기본값으로 다시 재설정한다고 말하고있는 것처럼 보입니다.
doug

답변:


33

를 눌러 Alt+의 F2유형 unity을 누릅니다 Enter.


3
단순하지만 온화합니다. 나는 왜 아무도 이것을 이전에 생각하지 않았는지 모른다. 얼마나 많은 Unity가 다시 시작되는지 모르겠지만 재정의 된 .desktop 파일을 인식하기에 충분합니다. 감사합니다! 추가 답변을 기다리며 며칠 안에 현상금을 수여합니다.
바이트 사령관

1
첫 현상금 @padlyuck에 축하드립니다! : D
바이트 사령관

9
16.04 에서이 작업을 수행하고 창을 엉망으로 만들고 일부 응용 프로그램 (예 : 브라우저)이 닫혔습니다.
Daniel

이것에 대해 자세히 설명해 주시겠습니까? 정확히 무엇을합니까?
George D

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
      
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.