35#include <boost/filesystem/operations.hpp>
36#include <boost/filesystem/path.hpp>
42 const command_line::arg_descriptor<bool> arg_detach = {
46 const command_line::arg_descriptor<std::string> arg_pidfile = {
48 ,
"File path to write the daemon's PID to (optional, requires --detach)"
50 const command_line::arg_descriptor<bool> arg_non_interactive = {
52 ,
"Run non-interactive"
57 boost::program_options::options_description & hidden_options
58 , boost::program_options::options_description & normal_options
72 boost::program_options::variables_map
const &
vm
75 return boost::filesystem::current_path();
78 template <
typename T_executor>
80 int argc,
char const * argv[]
81 , T_executor && executor
82 , boost::program_options::variables_map
const &
vm
94 auto daemon = executor.create_daemon(
vm);
99 return executor.run_non_interactive(
vm);
104 return executor.run_interactive(
vm);
void add_arg(boost::program_options::options_description &description, const arg_descriptor< T, required, dependent, NUM_DEPS > &arg, bool unique=true)
Definition command_line.h:187
std::enable_if<!std::is_same< T, bool >::value, bool >::type has_arg(const boost::program_options::variables_map &vm, const arg_descriptor< T, required, dependent, NUM_DEPS > &arg)
Definition command_line.h:256
T get_arg(const boost::program_options::variables_map &vm, const arg_descriptor< T, false, true > &arg)
Definition command_line.h:269
Definition command_parser_executor.cpp:39
Definition daemonizer.h:36
boost::filesystem::path get_default_data_dir()
Definition posix_daemonizer.inl:66
void init_options(boost::program_options::options_description &hidden_options, boost::program_options::options_description &normal_options)
Definition posix_daemonizer.inl:56
boost::filesystem::path get_relative_path_base(boost::program_options::variables_map const &vm)
Definition posix_daemonizer.inl:71
void fork(const std::string &pidfile)
Definition posix_fork.cpp:30
randomx_vm * vm
Definition tests.cpp:20