systemd에서 런레벨을 어떻게 변경합니까?


27

매우 간단합니다. 런레벨을 변경하려고합니다. 온라인에서 찾은 모든 내용은 다음 위치의 파일을 가리 킵니다.

/etc/init/rc-sysinit.conf

여기서 나는 "DEFAULT_RUNLEVEL"을 3 또는 다른 것으로 변경하려고 시도했지만 아무런 차이가 없습니다 (원래 값은 2 였지만 의미가 없었습니다). 어쨌든 내 컴퓨터는 완전히 부팅되고 runlevel 명령을 확인할 때마다 "N 5"가 결과로 표시됩니다.

런레벨을 어떻게 변경합니까? 나는 grub이나 다른 해결 방법을 통해 그것을 재정의하지 않을 것입니다. 그리고 X를 구체적으로 비활성화하는 방법을 찾고 있지 않습니다.

온라인에서 찾은 모든 지침이 약간 오래되었습니다. 16.04에서 무언가 변경 되었습니까?


부팅 후 수동으로 변경하거나 매번 다른 런레벨로 자동 부팅 하시겠습니까?
바이트 사령관

매번 자동. 우분투 데스크탑으로 설정되었지만 이제는 런레벨을 낮추고 어딘가에 코너에 넣기를 원합니다.
무시 함

실제로, 왜 런레벨을 바꾸고 싶습니까? 데스크탑을로드하는 대신 터미널 인터페이스로만 부팅 하시겠습니까? 이 경우 부팅시 표준 대상 시스템로드를 수정하고 "텍스트"커널 옵션을 추가해야합니다.
바이트 사령관

4
아마도 15.10부터 Ubuntu가 systemd대신 대신 사용 upstart하고 당신이 말하는 파일이 용이기 때문입니다 upstart. 오래된 기사를 읽으면 오래된 기사도 찾을 수 init있습니다. 그러나 함께 systemd, 당신은 단순히 GUI 및 사용하여 텍스트 모드 사이를 전환 할 수 있습니다 sudo systemctl start graphical.targetsudo systemctl start multi-user.target.
바이트 사령관

5
모든 검토 자에게 이것은 유효한 질문입니다! 이 IS 사용하여 (이것은 "실행 수준"또는 "대상"이라고 여부를) 실행 레벨을 변경하는 방법systemctl isolate

답변:


50

Ubuntu 16.04는 init 대신 systemd를 사용하므로 개념은 runlevels용어로 대체됩니다 targets. 따라서 초기화 기반 실행 수준과 시스템 기반 대상간에 매핑이 실제로 있습니다.

   Mapping between runlevels and systemd targets
   ┌─────────┬───────────────────┐
   │Runlevel │ Target            │
   ├─────────┼───────────────────┤
   │0        │ poweroff.target   │
   ├─────────┼───────────────────┤
   │1        │ rescue.target     │
   ├─────────┼───────────────────┤
   │2, 3, 4  │ multi-user.target │
   ├─────────┼───────────────────┤
   │5        │ graphical.target  │
   ├─────────┼───────────────────┤
   │6        │ reboot.target     │
   └─────────┴───────────────────┘

이제 16.04의 "런레벨"을 변경하려면 다음과 같이 사용할 수 있습니다.

sudo systemctl isolate multi-user.target

이것을 기본 "런레벨"로 만들려면 다음을 사용할 수 있습니다.

sudo systemctl enable multi-user.target
sudo systemctl set-default multi-user.target

에서 man systemctl

   isolate NAME
       Start the unit specified on the command line and its dependencies and stop all others. If
       a unit name with no extension is given, an extension of ".target" will be assumed.

       This is similar to changing the runlevel in a traditional init system. The isolate command
       will immediately stop processes that are not enabled in the new unit, possibly including
       the graphical environment or terminal you are currently using

또한 man systemd.specialsystemd의 대상에 대해 자세히 알아보십시오.


안녕하세요 @Ron 귀하의 응답이 훌륭합니다 .Nvidia 공식 드라이버를 설치하기 위해 했었지만 이제 내 화면에는 블루 스크린 만 표시되지 않습니다. 이 문제를 어떻게 해결할 수 있습니까? 당신의 도움에 미리 감사드립니다.
Raphael Teubner

Grub에서 복구 모드로 들어간 다음 루트로 이전 런레벨로 되돌립니다.
LottaLava

네. 방금 gui 부팅에서 텍스트 모드로 전환하는 매우 훌륭한 명령을하는 사람들이 어떻게 텍스트 부팅에서 gui 부팅으로 돌아가는 지에 대해 신경 쓰지 않는 것에 대해 언급하려고했습니다.
nyxee

참고로, sudo systemctl set-default multi-user.targetGUI 모드에서 실행 하고 재부팅 할 때 GUI가 부팅되지 않았다는 빈 화면이 표시되어 Ctrl-Alt-F3Runlevel 3에 들어가서 필요한 작업을 수행했습니다 (NVIDIA 설치- CUDA)를 실행 sudo systemctl set-default graphical.target하고 GUI 로그인 화면으로 돌아갑니다. 그러나 이제 로그인에 실패했습니다. 올바른 방법으로 이전 런레벨되돌릴 수 있습니까?
nyxee 2012 년

2
@nyxee-예, sudo systemctl set-default graphical.targetGUI 데스크탑 환경으로 되돌릴 수있는 올바른 방법입니다. 로그인 실패는 런레벨 전환과 관련이없는 것으로 들립니다 . 이는 nVidia 부팅 루프 문제 와 비슷합니다 . 확인하려면 런레벨 3으로 돌아가서 nVidia 및 Cuda 드라이버를 제거하고, 리포지토리에서 nVidia 드라이버를 설치하고, 기본값을 런레벨 5 (graphical.target)로 설정 한 다음 재부팅하고 로그인 할 수 있는지 확인하십시오.
Andy Turfer
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.