명령줄에서 모든 시작 작업을 보려면 어떻게 해야 합니까?

명령줄에서 모든 시작 작업을 보려면 어떻게 해야 합니까?

내 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을 사용하지만 시작 시 실행 프로그램을 숨깁니다.

관련 정보