
Security News
CISA’s 2025 SBOM Guidance Adds Hashes, Licenses, Tool Metadata, and Context
CISA’s 2025 draft SBOM guidance adds new fields like hashes, licenses, and tool metadata to make software inventories more actionable.
Small gem to manage executing looping processes and signal handling.
Add this line to your application's Gemfile:
gem 'sigurd'
And then execute:
$ bundle
Or install it yourself as:
$ gem install sigurd
We use a version of semver for this gem. Any change in previous behavior (something works differently or something old no longer works) is denoted with a bump in the minor version (0.4 -> 0.5). Patch versions are for bugfixes or new functionality which does not affect existing code. You should be locking your Gemfile to the minor version:
gem 'sigurd', '0.0.3'
Sigurd exposes two classes for use with a third class. The ideas is as follows:
start
and stop
methods.
This object is called a "Runner". When the stop
method is called,
the runner should gracefully shut down.Executor
class - this manages a thread pool for a
list of runners.SignalHandler
which is the topmost object. This will
handle the signals sent by the system and gracefully forward the
requests. You pass the executor into the SignalHandler.start
on the SignalHandler
to begin the execution.Sample code:
class TestRunner
def start
loop do
break if @signal_to_stop
# do some logic here
end
end
def stop
@signal_to_stop = true
end
end
runners = (1..2).map { TestRunner.new }
executor = Sigurd::Executor.new(runners, sleep_seconds: 5, logger: Logger.new(STDOUT))
Sigurd::SignalHandler.new(executor).run!
If you have only a single runner, you can pass it into the SignalHandler
directly, without using an Executor
:
Sigurd::SignalHandler.new(runner).run!
By default, if any of your runners fails, Sigurd will use an exponential
backoff to wait before restarting it. You can instead use the sleep_seconds
setting to always sleep a fixed amount of time before retrying. There
is no limit to retries.
By default, sigurd will exit the process when a TERM, KILL or QUIT signal is received. You can change this
behavior to instead raise the original SignalException
by setting
Sigurd.exit_on_signal = true
Bug reports and pull requests are welcome on GitHub at https://github.com/flipp-oss/sigurd .
Sigurd uses Rubocop to lint the code. Please run Rubocop on your code before submitting a PR.
FAQs
Unknown package
We found that sigurd demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
CISA’s 2025 draft SBOM guidance adds new fields like hashes, licenses, and tool metadata to make software inventories more actionable.
Security News
A clarification on our recent research investigating 60 malicious Ruby gems.
Security News
ESLint now supports parallel linting with a new --concurrency flag, delivering major speed gains and closing a 10-year-old feature request.