내 Raspberry Pi에서 특정 애플리케이션이 실행되는 이유를 찾으려고 하다가 부팅 시 애플리케이션을 실행하는 방법이 6가지 있다는 것을 발견했습니다. 이것이 내가 찾은 것입니다.
- /etc/rc.local
- /home/pi/.bashrc
- 스크립트를 /etc/init.d/에 복사합니다.
- 시스템 제어
- crontab을 통한 일정
명령줄에서 시작 시 실행되는(또는 실행되도록 예약된) 모든 항목을 식별할 수 있는 방법이 있습니까?
답변1
데비안은 시스템 기반 배포판이므로 모든 멋진 도구를 얻을 수 있습니다!
따라서 시스템을 "부팅 완료!" 상태로 만들기 위해 부팅하는 데 필요한 모든 항목의 목록을 제공했을 뿐만 아니라 부팅을 완료하는 데 사용할 수 있는 다른 도구의 몇 가지 예도 제공했습니다. 마지막으로 시작하는 동안 무슨 일이 일어나는지에 대한 더 깊은 이해.
# Gives you a text-art tree of all the units that get started for
# your default boot target:
sudo systemctl list-dependencies default.target
# Takes the log from the last boot, and analyzes the critical chain, i.e.,
# what the things were the "next thing to happen" waited for the longest.
# For example, for a webserver to start, you might need to wait both for
# network to be up, as well as for the database server to be ready. The
# webserver might be the thing that the multiuser target was waiting for
# the longest, and not the synchronization of mails.
# This critical chain will show what was "blocking" the system from
# continuing to boot for the most part. It is a useful tool if you want to
# figure out how to optimize boot speed:
sudo systemd-analyze critical-chain
# Takes the log from the last boot, and list what took how long to
# start (and if it finishes, and isn't persistent, to finish), and
# outputs it as SVG data, which you can look at e.g. in your browser:
sudo systemd-analyze plot > boot-timings.svg
여기에는 "정상적인" 시스템 시작 내의 콘텐츠만 포함됩니다. 타이머가 있는 경우(cron을 통해든 다른 방식으로든) systemd는 이를 알 수 있는 방법이 없습니다. 그러나 항상 동일합니다. cron을 부팅 시 실행되는 도구로 잘못 사용한 일을 했다는 사실을 잊는 좋은 방법이므로 Linux 배포판에서는 패키지가 실제로 존재하지 않는 cronjob을 설정하는 것을 허용하지 않는 문제가 있습니다. 매우 엄격합니다. . cronjob을 사용하지만 시작 시 실행 프로그램을 숨깁니다.