this post was submitted on 14 Oct 2025
12 points (100.0% liked)

Linux

58970 readers
814 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 6 years ago
MODERATORS
 

Hi!

I've a cronjob that I don't want to be concurrent but it needs to leave a long-running process after it does it's job that I set up with a nohup command.

The deal is that once the script has setup the lock doesn't get released so any further calls to the script just get ignored.

Is there a better alternative/flag I'd use? I couldn't discern much from the flock or nohup man pages.

Solved: With bit more fiddling found the - u flag on the flock man page. You can unlock yourself at the very end of the script.

top 7 comments
sorted by: hot top controversial new old
[–] hades@feddit.uk 3 points 2 days ago (1 children)

Can you modify the script to release the lock after the process has started?

[–] Gonzako@lemmy.world 2 points 2 days ago

Yes! I found the - u flag on flock and that got it working. Thanks for the attention anyway.

[–] Frid0lin@feddit.org 2 points 2 days ago (1 children)

Could you just save the pid of that cronjob in a file? (Assuming this cronjob calls bash script). Before the next run of the cronjob check if that process with that pid is still running? Hoping, I understand your problem correctly. You do not want to run the cronjob again until the first run finishes?

[–] Gonzako@lemmy.world 2 points 2 days ago (1 children)

Flock does this functionality, the deal is that it waited for the long-running process to end so it wouldn't release the lock after the script was done. Adding a line manually releasing it fixed it.

It's an auto-update script, you don't wanna start a new update while one is underway.

[–] Frid0lin@feddit.org 2 points 2 days ago (1 children)

Thanks for the update maybe I'm a bit oldschool and need to dig deeper "in the flock" ;-)

[–] Gonzako@lemmy.world 2 points 2 days ago (1 children)

sorry fLock it my phone doesn't like it and don't really know what the f stands for. but flock is a Linux command that let's you manage simple concurrency issues https://www.man7.org/linux/man-pages/man1/flock.1.html

[–] Badabinski@kbin.earth 2 points 2 days ago

the f stands for file. The c manpage has some details on how it works: https://www.man7.org/linux/man-pages/man2/flock.2.html