부팅 시, 로그인 시(시스템 > 기본 설정 > 시작 응용 프로그램) 또는 셸을 열 때(.bashrc) 프로그램을 실행하는 방법을 알고 있습니다. 나도 읽었어"데스크톱이 로드된 후 스크립트를 실행하시겠습니까?". 시작 응용 프로그램에 추가된 모든 응용 프로그램은 데스크탑을 사용할 수 있을 때까지의 시간을 연장한다는 것을 깨달았습니다. 그래서 저는 정기적인 시작이 완료된 후 실행되는 스크립트(작동하는 경우)에서 "있으면 좋은 것"을 모두 시작하는 방법을 찾고 있습니다.
나는 거기에 어떻게 가는지 완전히 확신하지 못합니다. &를 사용하여 첫 번째 스크립트를 호출하고(백그라운드에서 실행되도록) 첫 번째 스크립트에 대기(몇 초|특정 이벤트)를 추가하는 두 번째 스크립트를 사용하시겠습니까?
답변1
sleep
"있으면 좋은" 스크립트의 시작 부분에서 호출하면 됩니다 . 데스크톱 로드가 차단되어서는 안 됩니다. 각 프로세스를 백그라운드로 설정하여 멀티 코어 하드웨어의 작업 속도를 높일 수도 있습니다.
예를 들어
sleep 20s
<something that takes a long time> &
<this can now start immediately> &
...
두 명령은 병렬로 실행되지만 시작하기 전에 20초 동안 기다립니다. 몇 초가 마음에 들지 않는 경우 "m", "h" 또는 "d"를 사용하여 분, 시간 또는 일을 지정할 수 있습니다. =)
답변2
값비싼 것을 실행하려면 지연을 두고 백그라운드에서 실행하세요. 예를 들어
after 20s find-all-the-dirty-dishes &
after 1m find ~ -name '*~' -mtime +30 -exec rm '{}' ';'
스스로 구현해야 after
하지만 다음과 같을 수 있습니다.
#!/bin/sh
sleep "$1"
shift
exec "$@"