{"id":15018285,"url":"https://github.com/silug/run1","last_synced_at":"2026-02-20T22:40:10.359Z","repository":{"id":827690,"uuid":"543563","full_name":"silug/run1","owner":"silug","description":"Run a program once at a time","archived":false,"fork":false,"pushed_at":"2024-07-31T14:30:14.000Z","size":11,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-13T00:41:27.728Z","etag":null,"topics":["flock","perl","perl-script"],"latest_commit_sha":null,"homepage":"","language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/silug.png","metadata":{"files":{"readme":"README.pod","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2010-03-02T21:20:25.000Z","updated_at":"2024-07-31T14:30:17.000Z","dependencies_parsed_at":"2024-09-28T19:00:45.689Z","dependency_job_id":null,"html_url":"https://github.com/silug/run1","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/silug/run1","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silug%2Frun1","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silug%2Frun1/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silug%2Frun1/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silug%2Frun1/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/silug","download_url":"https://codeload.github.com/silug/run1/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silug%2Frun1/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29667093,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-20T19:49:36.704Z","status":"ssl_error","status_checked_at":"2026-02-20T19:44:05.372Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["flock","perl","perl-script"],"created_at":"2024-09-24T19:51:46.954Z","updated_at":"2026-02-20T22:40:10.282Z","avatar_url":"https://github.com/silug.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"=head1 NAME\n\nrun1 - Run a program once at a time\n\n=head1 SYNOPSIS\n\nB\u003crun1\u003e [ C\u003c-d\u003e I\u003cdir\u003e ] [ C\u003c-l\u003e I\u003clabel\u003e ] [ C\u003c-w\u003e I\u003csec\u003e ] [ C\u003c-k\u003e I\u003csec\u003e ]\n     I\u003cprogram\u003e [ I\u003cargs\u003e ]\n\n=head1 DESCRIPTION\n\nThis program is useful for keeping multiple copies of a program from\nrunning concurrently.\n\n=head1 OPTIONS\n\n=over 9\n\n=item C\u003c-d\u003e I\u003cdirectory\u003e\n\nSave lock/pid files in I\u003cdirectory\u003e instead of the default (~/.locks).\n\n=item C\u003c-l\u003e I\u003clabel\u003e\n\nUse I\u003clabel\u003e as the lock/pid file name.  The default is the name of the\nprogram being executed.\n\n=item C\u003c-w\u003e I\u003cseconds\u003e\n\nPrint a warning to stderr if the process with the lock has been running\nfor more than I\u003cseconds\u003e seconds.  The default is 86400 seconds, or one day.\nSpecifying 0 seconds disables warning messages.\n\n=item C\u003c-k\u003e I\u003cseconds\u003e\n\nKill the process with the lock if it has been running for more than I\u003cseconds\u003e\nseconds.  The default is 0, which disables this feature.\n\n=item C\u003c-s\u003e\n\nTry to get a shared lock on the lock file.  This is useful for nesting\ncalls to run1.  Say you have two scripts that can operate independently,\nand another script that does the equivalent of the first two, in addition\nto whatever other work it might do.  For example, a script that mirrors a\nlinux distribution ftp site.  One syncs only updates, the second syncs only\nthe distribution, and a third syncs the whole tree.  You might invoke them\nlike this:\n\n    run1 -s -l mirror run1 mirror-updates\n    run1 -s -l mirror run1 mirror-dist\n    run1 -l mirror mirror-all\n\nSince mirror-updates and mirror-dist get a shared lock on \"mirror\", they'll\nkeep mirror-all from running, but they'll run just fine individually.\nWhile mirror-all is running, neither mirror-updates or mirror-dist will\nrun.\n\nNote that currently -w and -k are ignored when using shared locks.  (This\nmay or may not change at some point in the future.)\n\n=item C\u003c-b\u003e\n\nBlock (indefinitely) on the lock request.\n\n=back\n\n=head1 NOTES\n\nPlease note that this script will only work reliably when the lock\ndirectory is on a filesystem (and operating system) where you can rely on\nL\u003copen(2)\u003e with C\u003cO_EXCL\u003e and L\u003cflock(2)\u003e working properly.  In other\nwords, don't point the lock directory to a network filesystem (especially\nNFS).  Use C\u003c-d\u003e I\u003c/some/local/dir\u003e.\n\n=head1 SEE ALSO\n\nL\u003clockfile(1)\u003e\n\n=head1 BUGS\n\nThe limitations of the locking system (see L\u003cNOTES|\"NOTES\"\u003e above) could be\nconstrued as bugs.\n\n=head1 AUTHOR\n\nSteven Pritchard E\u003clt\u003eF\u003csteve@silug.org\u003eE\u003cgt\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsilug%2Frun1","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsilug%2Frun1","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsilug%2Frun1/lists"}