![Debian 9 또는 Raspbian 8에서 종료 시 스크립트를 실행하는 방법(Jessie)](https://linux55.com/image/106227/Debian%209%20%EB%98%90%EB%8A%94%20Raspbian%208%EC%97%90%EC%84%9C%20%EC%A2%85%EB%A3%8C%20%EC%8B%9C%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20%EC%8B%A4%ED%96%89%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95(Jessie).png)
재부팅 및 종료 시 다음 셸 스크립트를 실행하고 싶습니다.
#!/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