GN⁺: Show HN: 인터랙티브 Systemd – Systemd 유닛 작업의 개선된 방법
(isd-project.github.io)-
isd
는systemd
유닛을 관리하는 더 나은 방법을 제공하는 도구로, 터미널 사용자 인터페이스(TUI)를 통해 유닛을 검색하고 미리보기를 자동으로 갱신하며, 스마트한sudo
처리와 사용자 맞춤형 인터페이스를 제공함
짧은 동기
-
isd
는systemd
유닛과 상호작용하는 데 필요한 복잡한 과정을 단순화하여 사용자에게 유용한 정보를 제공함 -
systemctl
명령어를 반복적으로 입력하는 번거로움을 줄이고, 자동으로 출력 결과를 갱신함
설치
-
isd
는 AppImage, nix, uv를 통해 설치 가능함 - AppImage는 모든 Linux 배포판에서 실행할 수 있는 단일 실행 파일로, 권한이 제한된 원격 서버에서도 사용 가능함
- nix 환경에서
isd
를 설치하려면, nix 패키지를 사용하여 설치 가능함 - uv는 Python 패키지 관리자로, uv를 통해
isd
를 설치하고 관리할 수 있음
isd
사용법
-
isd
는systemd
유닛을 검색하고 상태를 확인하며, 여러 유닛의 상세 정보를 미리보기로 제공함 - 선택한 유닛에
systemctl
명령어를 보내고 상태 출력을 자동으로 갱신함 -
isd
내에서pager
를 열어 전체 상태 출력을 확인할 수 있음 -
Journal
출력에 대한 별도의pager
를 열 수 있으며, 사용자 맞춤형 테마와 키 바인딩을 설정할 수 있음
사용자/시스템 모드
-
isd
는user
또는system
모드로 실행되며, 각 모드에 따라 표시되는 유닛 유형이 달라짐
퍼지 검색
- 퍼지 검색 바를 통해 입력된 내용과 일치하는 모든 유닛과 유닛 파일을 로드하고, 현재 상태에 따라 강조 표시함
여러 유닛 선택
- 검색 결과 위젯에서 여러 유닛을 선택할 수 있으며, 선택된 유닛의 미리보기를 제공함
명령 팔레트
- 명령 팔레트를 열어 사용 가능한 모든 명령과 키 바인딩을 확인할 수 있음
명령어
- 예를 들어,
Ctrl
+O
를 눌러 선택한 유닛을 중지할 수 있음
페이저 지원
-
isd
를 실행하면서pager
를 열어 전체 미리보기 출력을 확인할 수 있음
사용자 맞춤화
-
isd
는 사용자 맞춤화와 구성 가능성을 제공하며, 사용자가 최적의 생산성을 발휘할 수 있도록 다양한 테마와 키 바인딩을 제공함
요약
-
isd
가 유용할지 판단하기 위해 직접 사용해보는 것을 권장함
다음 단계
- 사용자 맞춤화 및 보안 섹션을 확인할 것
Hacker News 의견
-
systemd 명령어가 직관적이지 않아 불편함을 느끼는 사용자가 많음. 특히, 명령어의 피드백이 부족하고, 디렉토리 구조가 복잡하여 혼란스러움
- "systemd/system" 디렉토리 이름이 중복되어 불편함을 줌
- 인터페이스가 인간 친화적이어야 하며, Linux가 여전히 재미있어야 한다고 주장함
-
systemd의 ExecStop 처리 방식이 혼란스러움
- ExecStart는 서비스 시작 시 실행되는 명령어이며, ExecStop은 시작 명령어가 완료된 후 실행됨
- RemainAfterExit=yes 설정을 통해 서비스 종료 시 원하는 기능을 수행할 수 있음
-
CLI 명령어 사용의 어려움을 느끼고, lazygit/lazydocker 같은 도구를 사용하여 시스템 상태를 더 잘 파악하게 됨
- NixOS 사용자로서 서비스 발견, 가시성, 관리가 도움이 될 것이라고 생각함
-
systemd-client의 TUI가 Linux 외의 macOS, FreeBSD, Windows에서도 필요하다고 언급함
- uv 도구를 사용하여 설치 시 문제가 있었으나, uv가 pip보다 빠르다고 평가함
-
uv를 사용하여 도구 설치가 쉬워졌으나, Python 종속성을 무시하는 설치 루틴이 필요함
- Python 3.10에서 작동하지 않아
-p 3.13
옵션으로 해결함
- Python 3.10에서 작동하지 않아
-
systemd/dbus API 작업이 어려웠으나, 새로운 프로젝트를 시도해보고 배울 점이 있을 것이라고 기대함
-
systemd와의 상호작용이 대부분 사소한 작업임에도 불구하고, 사용성이 부족하다고 느끼며 TUI가 도움이 된다고 평가함
- 시스템 상호작용을 자동화하여 불편함을 줄였다고 언급함
-
원격 서버와 Docker 이미지에 설치할 수 없다는 점이 아쉬움
- 로컬 설치 후 ssh 및 'docker exec' 명령어를 통해 원격 명령 실행을 원함
-
systemd를 좋아하지만, 설치 전 원격 호스트 연결 가능 여부를 궁금해함
- systemctl --host <hostname> 명령어를 자주 사용함
-
특정 서비스 이전에 다른 서비스를 실행하고 싶지만, 다른 서비스의 유닛 파일을 수정하지 않고 가능 여부를 궁금해함