재부팅 및 종료 시 다음 셸 스크립트를 실행하고 싶습니다.
#!/bin/sh
touch /test
권한은 다음과 같습니다.
-rwxr-xr-x 1 root root 22 Feb 24 09:34 /etc/init.d/te1
이 링크가 있어요
/etc/rc0.d/K01te1 -> ../init.d/te1
/etc/rc6.d/K01te1 -> ../init.d/te1
이 링크가 있으면 시작 시 작동됩니다.
/etc/rc5.d/S01te1 -> ../init.d/te1
하지만 종료 시 실행해야 합니다.
데비안 8과 9 테스트에서 이 작업을 어떻게 수행하나요?
이것제안 touch /var/lock/subsys/te1
쓸모 없는.
답변1
내 생각에는 다른 사람들도 이 프로그램을 실행하는 데 문제가 있는 것 같습니다. systemd는 Debian 8.0(Jessie)부터 System V init와의 호환성이 손상된 것 같습니다.
그래서여기systemd 서비스를 생성하는 것이 좋습니다. 해결책은여기에서 사용하세요다음과 같습니다.
[Unit]
Description=The te1 script
[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/bin/true
ExecStop=/usr/local/bin/te1
[Install]
WantedBy=multi-user.target
systemd 서비스 /lib/systemd/system/te1.service
는 sudo systemctl enable te1
.
답변2
검색을 통해 찾을 수 있을 것 같지만 다음과 같이
스크립트를 /etc/rc6.d에 배치합니다. 필요한 권한을 부여합니다.
sudo chmod +x K99_script
그리고 몇 가지 핵심 사항:
.sh 확장자 K_99가 필요하지 않습니다. 여기 스크립트는 알파벳 순서로 읽기를 수행합니다.
여기
답변3
런레벨 6에서 시작 스크립트로 스크립트를 실행해 보세요.
ln -s /etc/init.d/te1 etc/rc0.d/S01te1