Perl 스크립트에서 리소스를 많이 사용하는 프로그램 [특히 rclone
]을 Google 드라이브에 전송하는 중입니다. 나는 어떤 조건 (등, 충돌, 동결, 서버 과부하를 방지 관련 아무것도)을 기반으로 rclone
의 인스턴스의 수를 제한하기 위해 필요로하는Perl 스크립트 내에서 실행되는 프로그램의 동시 인스턴스 수 제한 (> 1)
나는, 내가 rclone
를 호출하는 방법을 알아낼 못하고있다. rclone
을 실행하기 전에 스크립트가 적절한 시스템 "조건"을 기다리는 것이 좋습니다 (길거나 부정확 한 시간이 될 수 있습니다).
일부 세부 정보 : 스크립트 자체가 본질적으로 다른 프로그램 (아마도 많은) 파일이 들어있는 파일이나 디렉토리 경로 전달
- (파이썬으로 작성된이 프로그램은 -이 프로그램 참조
<A>
전화). <A>
은 스크립트에 값만 반환하므로 입력을 허용하는 것 외에는 스크립트 또는rclone
에 대해 아무것도 알지 못합니다.<A>
가<A>
화재 가변 간격 (즉<A>
을 변경하는 제 켄 넘어) 변경 될 수 없다 [즉 때때로 여러 번 스크립트를 연속적으로 실행합니다 (여러 인스턴스 생성). 다른 경우에는 몇 시간, 분 등의 시간에 한 번만 실행될 수 있습니다.rclone
을 직접 변경할 수 없습니다 (즉, 내 켄을 넘어서).- 절대적으로 필요한 경우
rclone
대신 스크립트의 인스턴스 수를 제한 할 수 있습니다 (단,rclone
만 있으면 좋겠지 만 스크립트로 수행되는 처리가 다소 제한적이고 제한이 필요하지 않음). - 모듈을 사용해도됩니다.
- 나는 절대적으로 필요한 경우를 제외하고는
pgrep
과ps
과 같은 유닉스 계열 운영체제를 사용하지 않기를 바란다.
현재 필자는 Perl 스크립트 대신 다소 잘못 작성된 bash 스크립트를 사용하고 있습니다. bash 스크립트는 pgrep -wc
, sleep
, while
루프 및 if
문을 사용하여 기본 (잘못 설계된) "점검/수면 루프"를 구현합니다. (솔직히 말해서 bash 스크립트가 실제로 작동/도움이된다고 생각하지 않습니다.)
** GNU Parallel **을'sem -j N '으로 호출 할 수 있으며'N' 인스턴스를 https://stackoverflow.com/a/46206137/2836621 및 https : //와 같이 병렬로 실행할 수 있습니다 www.gnu.org/software/parallel/sem.html –
@Mark 아 그래, 그 유용한 프로그램에 대해 완전히 잊어 버렸고 Perl로도 작성되었다. 명령이 _different_ 스크립트에서 여러 번 호출 될 때마다 세마포어 기능이 작동하는지 여부를 알고 있습니까? 그것은 --- 화장실 유추를 사용하여 ---- 각 스크립트 인스턴스가 다른 스크립트 인스턴스에 액세스 할 수있는 자체 "화장실 룸"을 갖거나 모든 스크립트 인스턴스가 동일한 "룸"을 사용합니까? – YenForYang
예, 서로 다른 프로그램이 모두 링크 된 답변에서와 같이 동일한 '--id'를 제공하는 한. –