Ubuntu 15.04와 함께 제공되는 더 큰 변경 사항은 부팅 및 시스템 서비스 시작 관리를위한 기본값으로 upstart에서 systemd로 전환하는 것입니다.
기술이 아닌 사용자에게 이것이 어떻게 그리고 우리에게 전혀 영향을 미치는지 적절히 설명 할 수 있습니까? 왜 중요한가요?
Ubuntu 15.04와 함께 제공되는 더 큰 변경 사항은 부팅 및 시스템 서비스 시작 관리를위한 기본값으로 upstart에서 systemd로 전환하는 것입니다.
기술이 아닌 사용자에게 이것이 어떻게 그리고 우리에게 전혀 영향을 미치는지 적절히 설명 할 수 있습니까? 왜 중요한가요?
답변:
Layman 사용자 는 의도적으로 변경 사항을 알 수 없습니다. 사용자가 전통적으로 상호 작용하는 것이 아니라 초기화 시스템입니다. Upstart에서 제공하는 기능을 완전히 대체해야하며 몇 가지 추가 작업을 수행해야합니다. 그러나 기술이 아닌 사용자가이를 볼 수 있는 유일한 시간 은 잘못되었을 때입니다.
Upstart를 위해 적극적으로 사용하고 개발 한 사용자, 시스템 관리자 및 개발자는 문제를 해결해야하는 사람들입니다. Ubuntu Wiki 에는 개발자가 초기화 스크립트를 변환하는 데 도움 이 되는 마이그레이션 문서가 있지만 사용자와 sysops는 14.04 (2019까지 지원)를 사용하여 Upstart를 계속 사용할 수 있습니다.
변화의 이유와 근거는 우분투 측이 아니 었습니다. Canonical은 Upstart (프로젝트)에 만족했지만 많은 데비안 사용자는 최신 init 엔진으로 이동하여 부팅시 동시성을 향상시키고 모든 서비스에서 기능을 모니터링하기를 원했습니다.
그것은 다양한 선택 (이론)과 시스템이 결국 이겼다는 것을 의미 했습니다.
Canonical은 가장 쉽고 아마도 데비안과 함께 했습니다. 그들은 프로젝트를 포기하고 업스트림과 싸우지 않습니다. 또한 시스템으로 이동하는 다른 배포판 (Red Hat, Fedora 등) 과도 일치합니다. 더 집중하고 노력의 중복을 줄입니다.
tl; dr 전문가 가 아닌 사람에게는 이것이 전혀 영향을 미치지 않습니다. 우분투의 경우 작업량이 적고 초기화 시스템이 향상되어야합니다.
기술이 아닌 사용자에게 이것이 어떻게 그리고 우리에게 전혀 영향을 미치는지 적절히 설명 할 수 있습니까?
이론적으로 이것은 시스템이 실제로 어떻게 작동하는지에 대한 핵심적인 기술에 관여하지 않는 비 기술적 인 최종 사용자에게는 영향을 미치지 않아야합니다. 실제로, 당신이 볼 많은 것들이 있습니다.
불완전한 목록은 다음과 같습니다.
init
+ rc
systemd는 사실에 의해 물린 경우에만 시스템 5와 호환 rc
. upstart와 마찬가지로 대부분의 다른 시스템과 마찬가지로 System 5 init
및 해당 구성 파일과의 호환성을 제공하지 않습니다 /etc/inittab
.따라서 30 년 동안 "글쎄, 이것을 편집 할 수 있습니다 /etc/inittab
"라는 조언을받은 사람들이나 그 조언을 따르는 소프트웨어를 사용하는 사람들은 이제 부트 스트랩에서 시작하지 않는 소프트웨어를 가지고 있습니다. 예 : https://unix.stackexchange.com/a/196197/5132
shutdown
shutdown
shutdown now
systemctl rescue
--user
옵션을 사용하여 명령 실행에 대해 사람들이 이야기하는 것을 보게 될 것 systemctl
입니다. 우분투에는 적용되지 않습니다 (아직). upstart와 systemd는이 영역에서 크게 다르며 Ubuntu 버전 15는 여전히 시스템 별 사용자 인스턴스 대신 세션 당 instart init를 사용합니다 . 그래서 https://superuser.com/a/860598/38062 예를 들어, 적용되지 않습니다. ☺다른 사람들이 이미 여기에서 언급했듯이 이론 상으로는 이것이 비 기술적 인 최종 사용자에게 영향을 미치지 않아야합니다. 이론 상으로는 이론과 실제 사이에 차이가 없지만 실제로는 있습니다.
여기에 게시 된 내용 중 일부는 설명이 필요하다고 생각합니다.
사용자가 전통적으로 상호 작용하는 것이 아니라 초기화 시스템입니다.
SysV init 및 Upstart의 경우이지만 더 이상 systemd의 경우는 아닙니다. 그것은 수행 을 많이 하는 사용자 전통적으로 상호 작용과 사물의를 :
Upstart에서 제공하는 기능을 완전히 대체하고 몇 가지 추가 작업을 수행해야합니다.
명확히해야 할 두 가지-먼저 Upstart를 완전히 교체하는 방법에 대해
사람들이 systemd와 관련된 문제 중 하나는 SysV init 스크립트를 실행하지 않는다는 것입니다. 따라서 Upstart에서 제공하는 기능을 완전히 대체 하지 않는 한 가지 예가 있습니다.
이것은 우리가 30 년 넘게 의지 할 수 있었으며 전통적으로 당신은 (동일한 스크립트의 여러 버전을 작성함으로써) 자신을 반복하지 않고 이식성을 극대화하기 위해 SysV init 스크립트를 작성했습니다.
SysV init 또는 Upstart 스크립트를 사용하던 패키지는 패키지를 작성하기 전에 스크립트를 다시 작성해야하므로 공식 리포지토리의 패키지 만 사용할 때는 문제가되지 않습니다.
SysV init 또는 Upstart 용으로 작성된 init 스크립트가있는 타사 또는 사용자 정의 소프트웨어를 사용하고 systemd가있는 시스템으로 업그레이드하기 전에 init 스크립트를 다시 작성해야하는 사람들에게만 문제가됩니다. upstart 설치 ( 옵션 ) 또는 systemd를 사용하지 않는 시스템으로 마이그레이션).
SysV init 스크립트를 시스템화 된 스크립트로 자동 변환하는 systemd-sysv-generator가 있지만 몇 가지 버그 와 명시 적 비 호환성 목록이 있습니다.
이제 두 번째 설명은 몇 가지 추가 사항에 대한 것입니다.
systemd에 대한 Perspective 에 따르면 systemd가 달성 한 것, 달성 한 것, 그리고 GNOME.asia에서 2014 년 Lennart Poettering이 발표 한 내용 에 따르면 "추가 된 것" 은 다음과 같습니다.
"이것은 사용자가 전통적으로 상호 작용하는 것이 아니라 init 시스템입니다." -init 시스템은 해당 목록에서 하나의 항목이라는 점을 지적해야합니다.
마지막으로 마지막으로 언급하고 싶은 것은 :
[T] 비 기술적 인 사용자는 이것이 잘못되었을 때만 볼 수있는 시간입니다.
오, 안도감. :)
스크립트 자체 이외의 최종 사용자에 대한 가장 눈에 띄는 변경은 서비스를 시작 및 중지하고 다음과 같은 명령을 사용하는 것입니다.
더 이상 예상대로 작동하지 않습니다. 예를 들어, nohup
세션에서 로그 아웃 한 후 프로세스가 계속 실행되도록하는 POSIX 명령입니다. 그것은 더 이상 작동하지 않습니다 systemd에. 또한 같은 프로그램 screen
과 tmux
필요 특별한 방법으로 또는 다른 호출 할 수 있습니다 당신은 죽을 것입니다 그들과 함께 실행하는 프로세스 (사망자 공정을받지 동안 것은 보통 처음에 화면이나 TMUX을 실행하는 주된 이유이다).
이것은 버그가 아니며, 디자인 선택이므로 향후 수정되지 않을 것입니다. 이것이 Lennart Poettering 이이 문제에 대해 말한 것입니다.
필자의 관점에서 볼 때 유닉스에서는 기본적으로 임의의 사용자 코드가 제한되지 않은 상태로 유지되는 것이 실제로 이상했다. 지금까지 많은 OS 사용자들 사이에서 논의되어 왔지만, 이것이 반드시 가능해야하지만 확실히 기본값은 아니지만, 스위치를 기본 설정에서 옵션으로 설정하기 위해 스위치를 뒤집는 사람은 아무도 없습니다. 로그 아웃 후 사용자 세션을 정리하지 않는 것은 추악하고 다소 해킹 일뿐만 아니라 보안 문제이기도합니다. systemd 230은 이제 스위치를 뒤집었고, 기본적으로 사용자가 로그 아웃 할 때 모든 것을 올바르게 정리합니다.
자세한 내용은 다음을 참조하십시오.
screen
screen
systemd-run --user --scope screen
(참고 : 위의 "스타트 업"동작은 실제로 시스템을 제외한 모든 것입니다. 이것은 스타트 업과 관련이 없습니다.)
start foo
systemctl start foo
stop foo
systemctl stop foo
restart foo
systemctl restart foo
initctl list
systemctl status
( 이 질문의 범위를 벗어난 자세한 내용 은 Upstart의 장점과 단점은 무엇입니까?에 대한 나의 답변을 참조하십시오 .)
Unix 전통과 달리 systemd의 로그는 사용자 정의 형식으로 이진 파일에 저장되므로 로그 처리에는 큰 차이가 있습니다.
cat /var/log/upstart/foo.log
tail -f /var/log/upstart/foo.log
로그에 액세스하려면 특수 명령을 사용해야합니다.
sudo journalctl -u foo
sudo journalctl -u foo -f
데비안과 우분투에 시스템을 처음 도입 한 것은 다음 기사 중 하나를 쓴 사람에게 알려진 논쟁과 광범위한 반대가 없었습니다.
systemd에 대한 공식 데비안 입장 과 그에 따른 논쟁 은 2014 년 출애굽 선언으로 이어졌고 Ian Jackson의 사임으로 끝났다 .
해커 뉴스에 대한 많은 토론 과 함께 Init Freedom , Without-Systemd.org 및 Systemd-Free.org 이니셔티브가 탄생했습니다.