Skip to content

Commit

Permalink
Merge branch 'jb36189_systemd_notify' into 'master'
Browse files Browse the repository at this point in the history
Use systemd notify instead of forking a daemon

See merge request !16
  • Loading branch information
spiiroin committed May 2, 2017
2 parents bcf16ef + e9e7cf5 commit 423953b
Show file tree
Hide file tree
Showing 6 changed files with 24 additions and 3 deletions.
1 change: 1 addition & 0 deletions rpm/sensorfw-qt5.spec
Expand Up @@ -20,6 +20,7 @@ BuildRequires: pkgconfig(Qt5DBus)
BuildRequires: pkgconfig(Qt5Network)
BuildRequires: pkgconfig(Qt5Test)
BuildRequires: pkgconfig(mlite5)
BuildRequires: pkgconfig(libsystemd)
BuildRequires: doxygen
BuildRequires: systemd
BuildRequires: libudev-devel
Expand Down
4 changes: 2 additions & 2 deletions rpm/sensorfwd.service
Expand Up @@ -5,8 +5,8 @@ Requires=dbus.service
Conflicts=actdead.target

[Service]
Type=forking
ExecStart=/usr/sbin/sensorfwd -c=/etc/sensorfw/primaryuse.conf -d --log-level=warning --no-magnetometer-bg-calibration
Type=notify
ExecStart=/usr/sbin/sensorfwd -c=/etc/sensorfw/primaryuse.conf --systemd --log-level=warning --no-magnetometer-bg-calibration
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
RestartSec=1
Expand Down
8 changes: 8 additions & 0 deletions sensord/main.cpp
Expand Up @@ -33,6 +33,8 @@
#include <QtCore/QCoreApplication>
#include <QtCore/QDebug>

#include <systemd/sd-daemon.h>

#include <signal.h>
#include <iostream>
#include <errno.h>
Expand Down Expand Up @@ -175,6 +177,11 @@ int main(int argc, char *argv[])
exit(EXIT_FAILURE);
}

if (parser.notifySystemd())
{
sd_notify(0, "READY=1");
}

int ret = app.exec();
sensordLogD() << "Exiting...";
Config::close();
Expand All @@ -185,6 +192,7 @@ void printUsage()
{
qDebug() << "Usage: sensord [OPTIONS]";
qDebug() << " -d, --daemon Detach from terminal and run as daemon.\n";
qDebug() << " -s, --systemd Notify systemd when ready.\n";
qDebug() << " -l=N, --log-level=<level> Use given logging level. Messages are logged for";
qDebug() << " the given and higher priority levels. Level";
qDebug() << " can also be notched up by sending SIGUSR1 to";
Expand Down
10 changes: 9 additions & 1 deletion sensord/parser.cpp
Expand Up @@ -33,6 +33,7 @@ Parser::Parser(QStringList arguments) :
configFile_(false),
configDir_(false),
daemon_(false),
systemd_(false),
magnetometerCalibration_(true),
configFilePath_(""),
logLevel_(QtWarningMsg)
Expand Down Expand Up @@ -81,7 +82,9 @@ void Parser::parsingCommandLine(QStringList arguments)
else if (opt.startsWith("--no-magnetometer-bg-calibration"))
magnetometerCalibration_ = false;
else if (opt.startsWith("-d") || opt.startsWith("--daemon"))
daemon_ = true;
daemon_ = true, systemd_ = false;
else if (opt.startsWith("-s") || opt.startsWith("--systemd"))
systemd_ = true, daemon_ = false;
else if (opt.startsWith("-h") || opt.startsWith("--help"))
printHelp_ = true;
else if (opt.startsWith("-"))
Expand Down Expand Up @@ -134,3 +137,8 @@ bool Parser::createDaemon() const
return daemon_;
}

bool Parser::notifySystemd() const
{
return systemd_;
}

2 changes: 2 additions & 0 deletions sensord/parser.h
Expand Up @@ -48,6 +48,7 @@ class Parser
bool contextInfo() const;
bool magnetometerCalibration() const;
bool createDaemon() const;
bool notifySystemd() const;

private:
void parsingCommandLine(QStringList arguments);
Expand All @@ -57,6 +58,7 @@ class Parser
bool configFile_;
bool configDir_;
bool daemon_;
bool systemd_;
bool magnetometerCalibration_;

QString configFilePath_;
Expand Down
2 changes: 2 additions & 0 deletions sensord/sensord.pro
Expand Up @@ -8,6 +8,8 @@ TARGET = sensorfwd
CONFIG += console \
link_pkgconfig

PKGCONFIG += libsystemd

SENSORFW_INCLUDEPATHS = .. \
../include \
../filters \
Expand Down

0 comments on commit 423953b

Please sign in to comment.