Systemd for voipmonitor service management: Difference between revisions

From VoIPmonitor.org
(Add troubleshooting for multiple VoIPmonitor instances (init.d vs systemd conflict causing duplicate packets and corrupted RRD))
(Rewrite: konsolidace a vylepšení struktury - zjednodušeno z 384 na 177 řádků)
 
(One intermediate revision by the same user not shown)
Line 3: Line 3:
[[Category:Installation]]
[[Category:Installation]]


'''This guide provides the recommended method for managing the VoIPmonitor sensor service using systemd on modern Linux distributions.'''
'''This guide covers managing the VoIPmonitor sensor service using systemd on modern Linux distributions.'''


== Overview ==
{{Warning|1='''Always use <code>systemctl</code> commands.''' Do not use the legacy <code>service</code> command as systemd may lose track of the process state.}}
 
Modern Linux distributions (Debian, Ubuntu, CentOS, RHEL, AlmaLinux) use systemd as the primary service manager. The recommended approach is to create a systemd unit file that wraps the reliable <code>/etc/init.d/voipmonitor</code> script, ensuring compatibility across various distributions.
 
{{Warning|1='''Always use <code>systemctl</code> commands to manage the service.''' Do not use the legacy <code>service</code> command (e.g., <code>service voipmonitor start</code>) as systemd may lose track of the process state.}}


== Unit File Configuration ==
== Unit File Configuration ==


Create file <code>/etc/systemd/system/voipmonitor.service</code>:
Create <code>/etc/systemd/system/voipmonitor.service</code>:


<syntaxhighlight lang="ini">
<syntaxhighlight lang="ini">
[Unit]
[Unit]
Description=VoIPmonitor sniffer
Description=VoIPmonitor sniffer
After=syslog.target
After=syslog.target network.target
After=network.target
# Add mysql.service only if DB is local (see Dependencies below)
After=mysql.service


[Service]
[Service]
Type=forking
Type=forking
Restart=no
RemainAfterExit=yes
TimeoutSec=5min
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
KillMode=process
GuessMainPID=no
GuessMainPID=no
RemainAfterExit=yes
IgnoreSIGPIPE=no
SuccessExitStatus=5 6
SuccessExitStatus=5 6
ExecStart=/etc/init.d/voipmonitor start
ExecStart=/etc/init.d/voipmonitor start
Line 39: Line 33:
</syntaxhighlight>
</syntaxhighlight>


== Dependency Customization ==
=== Dependencies ===


<kroki lang="mermaid">
{| class="wikitable"
%%{init: {'flowchart': {'nodeSpacing': 15, 'rankSpacing': 40}}}%%
|-
flowchart LR
! Scenario !! Add to [Unit] section
    subgraph "Dependencies"
|-
        A[syslog.target]
| '''Local MySQL/MariaDB''' || <code>After=mysql.service</code>
        B[network.target]
|-
        C[mysql.service]
| '''Napatech SmartNIC''' || <code>After=ntservice.service</code><br/><code>Requires=ntservice.service</code><br/><code>Wants=network-pre.target</code><br/><code>Before=network-pre.target</code>
        D[ntservice.service]
|}
    end
 
    E[voipmonitor.service]
 
    A --> E
    B --> E
    C -.->|"Local DB only"| E
    D -.->|"Napatech only"| E
</kroki>
 
=== MySQL/MariaDB ===
 
The line <code>After=mysql.service</code> is only required if the database is installed locally on the same server. If your database runs on a remote server, you can remove this line.
 
=== Napatech Cards ===
 
If you use Napatech hardware acceleration cards, add the following lines to the <code>[Unit]</code> section to ensure drivers load before VoIPmonitor starts:
 
<syntaxhighlight lang="ini">
Before=network-pre.target
Wants=network-pre.target
After=ntservice.service
Requires=ntservice.service
</syntaxhighlight>
 
== Activation and Management ==


=== Reload systemd after changes ===
== Basic Commands ==


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
# After any unit file changes
systemctl daemon-reload
systemctl daemon-reload
</syntaxhighlight>
=== Enable start on boot ===


<syntaxhighlight lang="bash">
# Enable auto-start on boot
systemctl enable voipmonitor
systemctl enable voipmonitor
</syntaxhighlight>


=== Standard management commands ===
# Start/Stop/Restart
 
<syntaxhighlight lang="bash">
# Start the service
systemctl start voipmonitor
systemctl start voipmonitor
# Stop the service
systemctl stop voipmonitor
systemctl stop voipmonitor
# Restart the service
systemctl restart voipmonitor
systemctl restart voipmonitor


# Check status and view recent logs
# Check status
systemctl status voipmonitor
systemctl status voipmonitor
</syntaxhighlight>
</syntaxhighlight>


== Troubleshooting ==
== Watchdog Integration ==


=== Service Not Starting vs Connection Failures ===
When using the internal watchdog with systemd, configure it to restart via systemctl. Otherwise, systemd will incorrectly report the service as "failed" after a watchdog-triggered restart.


Before troubleshooting systemd issues, identify whether the problem is with the systemd service OR with network connectivity:
Add to <code>/etc/voipmonitor.conf</code>:


{| class="wikitable"
<syntaxhighlight lang="ini">
|-
watchdog = yes
! Problem Type !! Symptoms !! Solution
watchdog_run_command = systemctl restart voipmonitor
|-
| '''Service fails to start''' || <code>systemctl start voipmonitor</code> returns error, service shows <code>failed</code> status || Continue with this guide
|-
| '''Service starts but cannot connect''' || Service shows <code>active (running)</code> but logs show "cannot connect to server" || See [[Sniffer_distributed_architecture#Troubleshooting_Connection_Failures|Distributed Architecture Troubleshooting]]
|}
 
=== Unit File Syntax Errors ===
 
If you encounter errors like:
 
<syntaxhighlight lang="text">
Error: Assignment outside of section. Ignoring.
Job for voipmonitor.service failed because the control process exited with error code.
</syntaxhighlight>
</syntaxhighlight>


This indicates syntax errors in the unit file. To bypass and fix:
== Controlling Verbose Output ==
 
<syntaxhighlight lang="bash">
# 1. Identify existing processes
ps aux | grep voipmonitor


# 2. Kill the watchdog process first (find its PID from ps output)
By default, VoIPmonitor outputs statistics to syslog every 10 seconds (controlled by <code>-v 1</code> in the init.d script).
kill <PID_WATCHDOG>


# 3. Kill the main voipmonitor process
=== Option 1: Redirect to Dedicated Log (Recommended) ===
kill -9 <PID_VOIPMONITOR>


# 4. Stop using init.d script
Add to <code>/etc/rsyslog.conf</code>:
/etc/init.d/voipmonitor stop


# 5. Start using init.d script (bypasses broken systemd unit)
<syntaxhighlight lang="rsyslog">
/etc/init.d/voipmonitor start
if $programname == 'voipmonitor' then /var/log/voipmonitor.log
& ~
</syntaxhighlight>
</syntaxhighlight>


=== Common Unit File Errors ===
Then: <code>systemctl restart rsyslog</code>


* Missing <code>[Unit]</code>, <code>[Service]</code>, or <code>[Install]</code> section headers
=== Option 2: Disable Statistics Entirely ===
* Assignments placed outside of their proper sections
* Typos in directive names (e.g., <code>ExecStar</code> instead of <code>ExecStart</code>)
* Missing equals (<code>=</code>) signs between directive and value


After fixing the unit file:
{{Warning|This removes valuable diagnostic metrics. Only use if necessary.}}


<syntaxhighlight lang="bash">
Edit <code>/etc/init.d/voipmonitor</code>, find the <code>ARGS=</code> line, and remove <code>-v 1</code> (or <code>v 1</code>):
systemctl daemon-reload
systemctl start voipmonitor
</syntaxhighlight>


=== Multiple VoIPmonitor Processes Running ===
<syntaxhighlight lang="text">
# Before:
ARGS="-v 1 --config-file /etc/voipmonitor.conf"


If you see multiple <code>voipmonitor</code> processes running simultaneously, or if the GUI shows duplicate SIP packets and corrupted RRD (Round-Robin Database) statistics, you may have a service manager conflict. This commonly occurs when both the legacy <code>init.d</code> script and the systemd service attempt to start VoIPmonitor at the same time.
# After:
ARGS="--config-file /etc/voipmonitor.conf"
</syntaxhighlight>


{{Warning|Multiple VoIPmonitor instances writing to the same RRD files simultaneously will immediately corrupt the statistics data. Do not ignore this problem until RRD graphs display correctly.}}
Then: <code>systemctl daemon-reload && systemctl restart voipmonitor</code>


==== Symptoms ====
== Troubleshooting ==


* Duplicate SIP packets appearing in the GUI for the same call
=== Unit File Syntax Errors ===
* RRD graphs showing errors or missing data
* Multiple <code>voipmonitor</code> processes in <code>ps aux | grep voipmonitor</code>
* GUI may show higher-than-expected call counts or inconsistent statistics
 
==== Root Cause ====
 
On modern systems (Ubuntu 20.04+, Debian 10+), systemd is the default init system. However, systemd automatically generates services for existing <code>/etc/init.d</code> scripts. If both a native systemd unit file (<code>/etc/systemd/system/voipmonitor.service</code>) and the init.d wrapper service are enabled, both attempt to start VoIPmonitor simultaneously.


==== Step 1: Stop All Running Processes ====
'''Symptom:''' "Assignment outside of section" or "control process exited with error code"


First, stop all voipmonitor processes to prevent ongoing RRD corruption:
'''Fix:''' Check unit file for:
* Missing section headers (<code>[Unit]</code>, <code>[Service]</code>, <code>[Install]</code>)
* Typos in directive names
* Missing <code>=</code> signs


'''Emergency bypass:'''
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
# Force-kill all voipmonitor processes
killall -9 voipmonitor
sudo killall -9 voipmonitor
/etc/init.d/voipmonitor start
 
# Fix unit file, then:
# Verify no processes remain
systemctl daemon-reload && systemctl start voipmonitor
ps aux | grep voipmonitor
</syntaxhighlight>
</syntaxhighlight>


==== Step 2: Identify Conflicting Services ====
=== Multiple Instances Running (Duplicate Packets, Corrupted RRD) ===


Determine which services are enabled and conflicting:
'''Symptom:''' Duplicate SIP packets in GUI, broken RRD graphs, multiple voipmonitor processes


<syntaxhighlight lang="bash">
'''Cause:''' Both systemd unit and init.d wrapper trying to start VoIPmonitor
# Check for systemd unit files
systemctl list-unit-files | grep voipmonitor


# Check for init.d script existence
'''Fix:'''
ls -l /etc/init.d/voipmonitor


# Check enabled systemd services
<syntaxhighlight lang="bash">
systemctl is-enabled voipmonitor.service
# 1. Kill all instances
</syntaxhighlight>
sudo killall -9 voipmonitor
 
==== Step 3: Disable the Redundant init.d Wrapper ====
 
The recommended approach is to use the native systemd unit file (documented above). To prevent the init.d wrapper from starting VoIPmonitor automatically while keeping the script available for manual use, remove the execute permission:


<syntaxhighlight lang="bash">
# 2. Disable init.d wrapper (keeps script but prevents auto-start)
# Remove execute permission from init.d script (prevents systemd from auto-starting it)
sudo chmod -x /etc/init.d/voipmonitor
sudo chmod -x /etc/init.d/voipmonitor


# Verify permissions are now removed
# 3. Delete corrupted RRD files
ls -l /etc/init.d/voipmonitor
</syntaxhighlight>
 
{{Note|This disables the SysV compatibility service generated by systemd from the <code>/etc/init.d/voipmonitor</code> script. The script remains available for manual execution if needed, but systemd will no longer attempt to start it automatically.}}
 
==== Step 4: Corrupted RRD Files ====
 
Multiple instances writing to the same RRD files simultaneously cause immediate corruption. The corrupted RRD files must be deleted so the single, correctly-running instance can regenerate them with clean data.
 
See [[GUI_troubleshooting#RRD_Graph_Errors_After_Hardware_Upgrades|RRD Graph Errors Troubleshooting]] for complete instructions. The short version:
 
<syntaxhighlight lang="bash">
# Stop the service first if it's still running
systemctl stop voipmonitor
 
# Delete all corrupted RRD files (safe operation - files will be regenerated)
sudo rm -f /var/spool/voipmonitor/rrd/*
sudo rm -f /var/spool/voipmonitor/rrd/*


# Restart the service
# 4. Start via systemd
systemctl start voipmonitor
</syntaxhighlight>
 
==== Step 5: Restart with systemd ====
 
Now start the service using the correct systemd method:
 
<syntaxhighlight lang="bash">
# Enable systemd service (ensures it starts on boot)
sudo systemctl enable voipmonitor
sudo systemctl enable voipmonitor
# Start the service
sudo systemctl start voipmonitor
sudo systemctl start voipmonitor


# Verify it's running correctly
# 5. Verify single instance
sudo systemctl status voipmonitor
</syntaxhighlight>
 
==== Step 6: Verify Single Instance ====
 
<syntaxhighlight lang="bash">
# Check that only one main process is running (ignore grep output and threads)
ps aux | grep "[v]oipmonitor"
ps aux | grep "[v]oipmonitor"
</syntaxhighlight>
</syntaxhighlight>


You should see only a single main process (possibly with multiple threads/worker processes), not multiple independent instances.
{{Note|1=The <code>chmod -x</code> disables the SysV compatibility service that systemd auto-generates from init.d scripts.}}
 
{{Tip|After fixing the service conflict, always use <code>systemctl</code> commands (<code>start</code>, <code>stop</code>, <code>restart</code>, <code>status</code>) to manage VoIPmonitor. Do not use the legacy <code>service voipmonitor start</code> or direct <code>/etc/init.d/voipmonitor start</code> commands, as this may cause systemd to lose track of the process and create conflicts.}}
 
==== Verification Steps ====
 
1. Make a test SIP call and verify only ONE CDR record appears in the GUI
2. Navigate to Settings > Sensor and confirm status shows "Active (running)" with green indicator
3. Check RRD graphs after a few minutes - data should be displaying without errors
4. Monitor process count with <code>ps aux | grep "[v]oipmonitor"</code> to ensure only one instance persists
 
== Internal Watchdog and SystemD ==
 
When using SystemD to manage the VoIPmonitor service, there is a potential issue if the internal watchdog restarts the VoIPmonitor process. By default, the internal watchdog may attempt to restart the binary directly. When this happens, the main process ID (PID) tracked by SystemD exits, causing SystemD to mark the service as "failed" or "dead," even though a new process has been spawned.
 
{{Warning|If the internal watchdog is enabled but not configured to use SystemD for restarts, the SystemD service status will incorrectly show the service as failed after a watchdog-triggered restart.}}


=== Configuring the Watchdog to Use SystemD ===
=== Connection Failures (Service Running but Not Connecting) ===


To ensure that SystemD correctly tracks the service status after a watchdog-triggered restart, edit the <code>/etc/voipmonitor.conf</code> file:
If <code>systemctl status voipmonitor</code> shows "active (running)" but logs show connection errors, the problem is not systemd-related. See [[Sniffer_distributed_architecture#Troubleshooting|Distributed Architecture Troubleshooting]].


<ol>
== See Also ==
<li>Enable the watchdog (if not already enabled):


<syntaxhighlight lang="ini">
* [[Sniffer_configuration]] - Full configuration reference
watchdog = yes
* [[Sniffer_installation]] - Installation guide
</syntaxhighlight>
* [[Multiple_sniffer_instancies]] - Running multiple sensors on one host
 
</li>
<li>Add the following line to make the watchdog use SystemD for restarts:
 
<syntaxhighlight lang="ini">
watchdog_run_command = systemctl restart voipmonitor
</syntaxhighlight>
 
</li>
</ol>
 
=== Why This Works ===
 
Setting <code>watchdog_run_command</code> forces the watchdog to hand over the restart process to SystemD via <code>systemctl restart</code>. This ensures that SystemD manages the entire stop/start cycle, keeps its internal state tracking consistent, and correctly reports the service as <code>active (running)</code> after a watchdog-triggered restart.
 
=== Verification ===
 
After configuration, you can verify that SystemD correctly tracks the service:
 
<syntaxhighlight lang="bash">
# Check service status
systemctl status voipmonitor
 
# Service should show "active (running)" not "failed" or "dead"
</syntaxhighlight>


== AI Summary for RAG ==
== AI Summary for RAG ==


'''Summary:''' Guide for managing VoIPmonitor sensor with systemd by wrapping the init.d script in a unit file. Configuration uses <code>Type=forking</code> with <code>RemainAfterExit=yes</code>. Key dependencies: <code>After=mysql.service</code> for local DB, <code>After=ntservice.service</code> with <code>Requires=ntservice.service</code> for Napatech. Always use <code>systemctl</code> commands (not legacy <code>service</code>) for reliable process tracking. For watchdog integration, set <code>watchdog_run_command = systemctl restart voipmonitor</code> to prevent systemd from incorrectly reporting failed status after watchdog-triggered restarts. For multiple instance conflicts (duplicate packets, corrupted RRD), remove execute permission from <code>/etc/init.d/voipmonitor</code> (<code>chmod -x</code>) to prevent systemd from auto-starting the init.d wrapper, then delete corrupted RRD files and restart with <code>systemctl start voipmonitor</code>.
'''Summary:''' Guide for managing VoIPmonitor sensor with systemd. Create unit file at <code>/etc/systemd/system/voipmonitor.service</code> with <code>Type=forking</code> and <code>RemainAfterExit=yes</code>. Key dependencies: add <code>After=mysql.service</code> for local DB only, add <code>After=ntservice.service</code> with <code>Requires=ntservice.service</code> for Napatech cards. Always use <code>systemctl</code> commands (not legacy <code>service</code>). For watchdog integration, set <code>watchdog_run_command = systemctl restart voipmonitor</code> to prevent systemd from showing failed status after watchdog restarts. For multiple instance conflicts (duplicate packets, corrupted RRD), run <code>chmod -x /etc/init.d/voipmonitor</code> to disable the init.d wrapper, delete RRD files, and restart via systemd. For verbose log spam (every 10 seconds), either redirect via rsyslog or remove <code>-v 1</code> from the init.d ARGS line.


'''Keywords:''' systemd, systemctl, voipmonitor.service, init.d wrapper, unit file, Type=forking, RemainAfterExit, After=mysql.service, Napatech, daemon-reload, watchdog, watchdog_run_command, service management, multiple instances, duplicate packets, corrupted RRD
'''Keywords:''' systemd, systemctl, voipmonitor.service, unit file, Type=forking, RemainAfterExit, After=mysql.service, Napatech, ntservice, daemon-reload, watchdog, watchdog_run_command, multiple instances, duplicate packets, corrupted RRD, chmod -x, verbose output, syslog spam, -v 1, rsyslog


'''Key Questions:'''
'''Key Questions:'''
* What is the recommended systemd unit file for VoIPmonitor?
* What is the recommended systemd unit file for VoIPmonitor?
* Why should I use <code>systemctl</code> instead of the <code>service</code> command?
* How do I configure systemd dependencies for MySQL and Napatech?
* How do I configure systemd dependencies for MySQL and Napatech?
* How do I make VoIPmonitor start automatically on boot?
* How do I make VoIPmonitor start automatically on boot?
* How do I bypass a broken systemd unit file?
* What causes "Assignment outside of section" error in systemd?
* Why does systemd show service as failed after watchdog restart?
* Why does systemd show service as failed after watchdog restart?
* What should I set <code>watchdog_run_command</code> to when using systemd?
* How do I fix multiple voipmonitor processes running (duplicate packets, corrupted RRD)?
* Multiple voipmonitor processes running - how to fix duplicate packets and corrupted RRD?
* How do I stop init.d and systemd from conflicting?
* How do I stop init.d and systemd from conflicting and starting multiple VoIPmonitor instances?
* How do I disable or redirect the verbose statistics output to syslog?

Latest revision as of 16:48, 8 January 2026


This guide covers managing the VoIPmonitor sensor service using systemd on modern Linux distributions.

⚠️ Warning: Always use systemctl commands. Do not use the legacy service command as systemd may lose track of the process state.

Unit File Configuration

Create /etc/systemd/system/voipmonitor.service:

[Unit]
Description=VoIPmonitor sniffer
After=syslog.target network.target
# Add mysql.service only if DB is local (see Dependencies below)

[Service]
Type=forking
RemainAfterExit=yes
TimeoutSec=5min
KillMode=process
GuessMainPID=no
IgnoreSIGPIPE=no
SuccessExitStatus=5 6
ExecStart=/etc/init.d/voipmonitor start
ExecStop=/etc/init.d/voipmonitor stop
PrivateTmp=false

[Install]
WantedBy=multi-user.target

Dependencies

Scenario Add to [Unit] section
Local MySQL/MariaDB After=mysql.service
Napatech SmartNIC After=ntservice.service
Requires=ntservice.service
Wants=network-pre.target
Before=network-pre.target

Basic Commands

# After any unit file changes
systemctl daemon-reload

# Enable auto-start on boot
systemctl enable voipmonitor

# Start/Stop/Restart
systemctl start voipmonitor
systemctl stop voipmonitor
systemctl restart voipmonitor

# Check status
systemctl status voipmonitor

Watchdog Integration

When using the internal watchdog with systemd, configure it to restart via systemctl. Otherwise, systemd will incorrectly report the service as "failed" after a watchdog-triggered restart.

Add to /etc/voipmonitor.conf:

watchdog = yes
watchdog_run_command = systemctl restart voipmonitor

Controlling Verbose Output

By default, VoIPmonitor outputs statistics to syslog every 10 seconds (controlled by -v 1 in the init.d script).

Option 1: Redirect to Dedicated Log (Recommended)

Add to /etc/rsyslog.conf:

if $programname == 'voipmonitor' then /var/log/voipmonitor.log
& ~

Then: systemctl restart rsyslog

Option 2: Disable Statistics Entirely

⚠️ Warning: This removes valuable diagnostic metrics. Only use if necessary.

Edit /etc/init.d/voipmonitor, find the ARGS= line, and remove -v 1 (or v 1):

# Before:
ARGS="-v 1 --config-file /etc/voipmonitor.conf"

# After:
ARGS="--config-file /etc/voipmonitor.conf"

Then: systemctl daemon-reload && systemctl restart voipmonitor

Troubleshooting

Unit File Syntax Errors

Symptom: "Assignment outside of section" or "control process exited with error code"

Fix: Check unit file for:

  • Missing section headers ([Unit], [Service], [Install])
  • Typos in directive names
  • Missing = signs

Emergency bypass:

killall -9 voipmonitor
/etc/init.d/voipmonitor start
# Fix unit file, then:
systemctl daemon-reload && systemctl start voipmonitor

Multiple Instances Running (Duplicate Packets, Corrupted RRD)

Symptom: Duplicate SIP packets in GUI, broken RRD graphs, multiple voipmonitor processes

Cause: Both systemd unit and init.d wrapper trying to start VoIPmonitor

Fix:

# 1. Kill all instances
sudo killall -9 voipmonitor

# 2. Disable init.d wrapper (keeps script but prevents auto-start)
sudo chmod -x /etc/init.d/voipmonitor

# 3. Delete corrupted RRD files
sudo rm -f /var/spool/voipmonitor/rrd/*

# 4. Start via systemd
sudo systemctl enable voipmonitor
sudo systemctl start voipmonitor

# 5. Verify single instance
ps aux | grep "[v]oipmonitor"

ℹ️ Note: The chmod -x disables the SysV compatibility service that systemd auto-generates from init.d scripts.

Connection Failures (Service Running but Not Connecting)

If systemctl status voipmonitor shows "active (running)" but logs show connection errors, the problem is not systemd-related. See Distributed Architecture Troubleshooting.

See Also

AI Summary for RAG

Summary: Guide for managing VoIPmonitor sensor with systemd. Create unit file at /etc/systemd/system/voipmonitor.service with Type=forking and RemainAfterExit=yes. Key dependencies: add After=mysql.service for local DB only, add After=ntservice.service with Requires=ntservice.service for Napatech cards. Always use systemctl commands (not legacy service). For watchdog integration, set watchdog_run_command = systemctl restart voipmonitor to prevent systemd from showing failed status after watchdog restarts. For multiple instance conflicts (duplicate packets, corrupted RRD), run chmod -x /etc/init.d/voipmonitor to disable the init.d wrapper, delete RRD files, and restart via systemd. For verbose log spam (every 10 seconds), either redirect via rsyslog or remove -v 1 from the init.d ARGS line.

Keywords: systemd, systemctl, voipmonitor.service, unit file, Type=forking, RemainAfterExit, After=mysql.service, Napatech, ntservice, daemon-reload, watchdog, watchdog_run_command, multiple instances, duplicate packets, corrupted RRD, chmod -x, verbose output, syslog spam, -v 1, rsyslog

Key Questions:

  • What is the recommended systemd unit file for VoIPmonitor?
  • How do I configure systemd dependencies for MySQL and Napatech?
  • How do I make VoIPmonitor start automatically on boot?
  • Why does systemd show service as failed after watchdog restart?
  • How do I fix multiple voipmonitor processes running (duplicate packets, corrupted RRD)?
  • How do I stop init.d and systemd from conflicting?
  • How do I disable or redirect the verbose statistics output to syslog?