사용자 정의 경로에서 사용자 정의 구성 요소 실행

사용자 정의 경로에서 사용자 정의 구성 요소 실행

~/.config/systemd/user 디렉토리 아래의 RHEL 8에서 사용자 단위를 성공적으로 활성화했습니다. Linger를 활성화하면 로그인하지 않고도 서비스를 시작할 수 있는 옵션도 제공됩니다. 제 질문은 ~/.config/systemd/user 외부의 다른 경로에 사용자 유닛(예: .service 파일)을 두고 지금처럼 해당 사용자 유닛을 시작할 수 있다는 것입니다.

답변1

그렇습니다. man systemd.unit당신의 친구이자 도우미가 되어 주십시오!

   User Unit Search Path
       ~/.config/systemd/user.control/*
       $XDG_RUNTIME_DIR/systemd/user.control/*
       $XDG_RUNTIME_DIR/systemd/transient/*
       $XDG_RUNTIME_DIR/systemd/generator.early/*
       ~/.config/systemd/user/*
       $XDG_CONFIG_DIRS/systemd/user/*
       /etc/systemd/user/*
       $XDG_RUNTIME_DIR/systemd/user/*
       /run/systemd/user/*
       $XDG_RUNTIME_DIR/systemd/generator/*
       $XDG_DATA_HOME/systemd/user/*
       $XDG_DATA_DIRS/systemd/user/*
       ...
       /usr/lib/systemd/user/*
       $XDG_RUNTIME_DIR/systemd/generator.late/*

그리고

User Manager 인스턴스의 로드 경로 세트는 다양한 환경 변수를 사용하여 늘리거나 변경할 수 있습니다. 환경 변수는 환경 생성기를 사용하여 설정할 수 있습니다. systemd.environment-generator(7)를 참조하세요. 특히 $XDG_DATA_HOME 및 $XDG_DATA_DIRS는 systemd-environment-d-generator(8)를 사용하여 쉽게 설정할 수 있습니다. 따라서 여기에 나열된 디렉터리는 기본 디렉터리일 뿐입니다. 컴파일 옵션 및 현재 환경 사용량에 따라 사용될 실제 목록을 확인하세요.

systemd-analyze --user unit-paths

또한 디렉터리의 유닛 파일에 대한 심볼릭 링크를 생성하여 유닛 로드 경로에 없는 디렉터리에서 다른 유닛을 systemd로 로드할 수 있습니다. 이를 달성하려면 systemctl 링크를 사용할 수 있습니다. systemctl(1)을 참조하세요. systemd가 시작되면 링크 단위 파일이 있는 파일 시스템에 액세스할 수 있어야 합니다. 예를 들어 /home/ 또는 /var/ 아래의 디렉터리는 루트 파일 시스템에 있지 않으면 허용되지 않습니다.


이제 흥미로운 질문은 당신이 설명하는 내용이 무엇인지 여부입니다.~해야 한다사용자단위 파일이거나 실제로 설치하려는 경우체계사용자로 실행되는 서비스 단위 파일입니다.

관련 정보