why does letsencrypt.sh not allow parallel calling? #129

Closed
opened 2025-12-29 00:25:30 +01:00 by adam · 4 comments
Owner

Originally created by @philkunz on GitHub (Jul 21, 2016).

why does letsencrypt.sh not allow parallel calling?

I'm trying to speed up https://www.npmjs.com/package/cert which uses letsencrypt.sh in the background for now.

Not being able to call it in parallel means that the process is blocking which is usually bad behaviour, at least if requests are made for different domain names.

Originally created by @philkunz on GitHub (Jul 21, 2016). why does letsencrypt.sh not allow parallel calling? I'm trying to speed up https://www.npmjs.com/package/cert which uses letsencrypt.sh in the background for now. Not being able to call it in parallel means that the process is blocking which is usually bad behaviour, at least if requests are made for different domain names.
adam closed this issue 2025-12-29 00:25:30 +01:00
Author
Owner

@omega8cc commented on GitHub (Jul 21, 2016):

This sounds like a duplicate of #228

@omega8cc commented on GitHub (Jul 21, 2016): This sounds like a duplicate of #228
Author
Owner

@lukas2511 commented on GitHub (Jul 21, 2016):

letsencrypt.sh mainly doesn't allow parallel calling because it's a lot easier to just stop if another instance in general is running than to check if another instance is running that is trying to modify the same files (account key generation / registration, private key (re)generation, csr generation, storing of new certificates, moving of old files to archive, hook stuff, ..., a lot of locations in the script where files are written or read)

I added an option in bd9cc5b to disable locks completely, be careful when using this.

@lukas2511 commented on GitHub (Jul 21, 2016): letsencrypt.sh mainly doesn't allow parallel calling because it's a lot easier to just stop if another instance in general is running than to check if another instance is running that is trying to modify the same files (account key generation / registration, private key (re)generation, csr generation, storing of new certificates, moving of old files to archive, hook stuff, ..., a lot of locations in the script where files are written or read) I added an option in bd9cc5b to disable locks completely, be careful when using this.
Author
Owner

@seefood commented on GitHub (Jul 21, 2016):

you can lock per domain and then it's easy to fork requests.
One thing this will solve - I had one line of the domains.txt fail, and then the rest don't continue. It's a major problem if you find it in an exploding inbox too late.

@seefood commented on GitHub (Jul 21, 2016): you can lock per domain and then it's easy to fork requests. One thing this will solve - I had one line of the `domains.txt` fail, and then the rest don't continue. It's a major problem if you find it in an exploding inbox too late.
Author
Owner

@philkunz commented on GitHub (Jul 21, 2016):

@lukas2511 Thanks so much! As far as I am concerned this is perfect now. I can call it and map myself which child processes currently request which domain to avoid read/write problems + I can store logs domain related. I'll add a link to this repo in the description of cert.

@philkunz commented on GitHub (Jul 21, 2016): @lukas2511 Thanks so much! As far as I am concerned this is perfect now. I can call it and map myself which child processes currently request which domain to avoid read/write problems + I can store logs domain related. I'll add a link to this repo in the description of cert.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/dehydrated#129