(리소스 목록에 대해) 어떤 스크립트가 자동으로 실행되는지, 컴퓨터를 시작한 순간부터 다시 종료될 때까지 언제 실행되는지 아는 사람이 있습니까?
자동으로 실행되도록 스크립트를 추가할 수 있는 여러 위치를 알고 있지만 대략적인 전체 목록을 알아낼 수는 없었습니다.
예를 들어, 저는 다음을 알고 있습니다.
~/.profile
로그인 시 실행됩니다crontab -e
특정 시간 및/또는 날짜에 실행되는 스크립트를 추가하는 데 사용할 수 있습니다.
하지만 스크립트가 실행될 수 있도록 스크립트를 어디에 넣어야 할지 알 수 없습니다.
- 부팅 후, X가 초기화되기 전
- X(또는 다른 그래픽 셸)가 초기화된 후, 누군가 로그인하기 전
- X 세션에 로그인한 후
- 빠른 사용자 전환 전/후
- X 세션에서 로그아웃하기 전에
- X 쉘에서 종료되기 전에
- X 종료 후, 시스템 정지 전
- tty-1..6을 통해 로그인 후/로그아웃 전
- SSH를 통해 로그인 후/로그아웃 전
그런 목록이 있나요? 그렇지 않다면 여기서 조립해도 될까요?
답변1
Ubuntu Linux의 경우 다음과 같은 솔루션이 있습니다.
부팅 후 X가 초기화되기 전:Ubuntu는 GDM(ubuntu-desktop을 사용하는 경우) 또는 KDM(kubuntu-desktop을 사용하는 경우)에서 X-Windows를 시작합니다.
GDM/KDM 이전에 스크립트를 실행하려면 고유한 시작 스크립트를 작성해야 합니다. 이를 위해 다음을 읽을 수 있습니다.신생 요리책.
사용자 전환 후:파일 에 스크립트를 추가해야 합니다
~/.bashrc
.tty를 통해 로그인한 후:파일 에 스크립트를 추가해야 합니다
~/.bash_profile
.ssh를 사용하여 로그인한 후(tty를 사용하여 로컬 로그인하는 동안은 아님):이 경우에도 동일한 파일에 스크립트를 추가해야
~/.bash_profile
하지만 이 경우에는 환경 변수가 있는지 테스트SSH_CONNECTION
하고 환경 변수가 있는 경우에만 명령을 실행하십시오.tty를 통해 로그아웃하기 전에:파일 에 스크립트를 추가해야 합니다
~/.bash_logout
.SSH를 통해 로그아웃하기 전에:파일 에 스크립트를 추가해야
~/.bash_logout
하지만 이 경우에도 환경 변수가 있는지 테스트하고SSH_CONNECTION
환경 변수가 있는 경우에만 명령을 실행합니다. 파일에 다음 줄을 추가해야합니다if [[ -n $SSH_CONNECTION ]]
답변2
Linux 내장 작업에 관심이 있다면 Unix System V 스타일 초기화를 구현하는 작업 모드인 Linux 런레벨을 참조할 수도 있습니다.
- 0 정지 시스템을 종료합니다.
- 1 관리 작업을 위한 단일 사용자 모드 모드.
- 2 다중 사용자 모드 네트워크 인터페이스를 구성하지 않으며 네트워크 서비스를 내보내지 않습니다.
- 삼 네트워킹을 사용한 다중 사용자 모드 시스템을 정상적으로 시작합니다.
- 4 사용되지 않음/사용자 정의 가능 특별한 목적을 위해.
- 5 적절한 디스플레이 관리자를 사용하여 시스템을 정상적으로 시작하십시오. (GUI 사용) 런레벨 3 + 디스플레이 관리자로.
- 6 재부팅 시스템을 재부팅합니다.
예를 들어 아래에서는 Linux 프로세스 및 해당 실행 수준 설정의 일부 목록을 볼 수 있습니다.
chkconfig --list
acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off
anacron 0:off 1:off 2:on 3:on 4:on 5:on 6:off
atd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
auditd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
autofs 0:off 1:off 2:on 3:on 4:on 5:on 6:off
avahi-daemon 0:off 1:off 2:off 3:off 4:off 5:off 6:off
avahi-dnsconfd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
.
.
.