Skip to content

svctool.8

Manvendra Bhangui edited this page Feb 25, 2024 · 18 revisions

NAME

svctool - IndiMail/indimail-mta Service Configuration Tool

SYNOPSYS

svctool [ options ]

DESCRIPTION

svctool is a shell frontend for configuring IndiMail services, configuring IndiMail(7), taking backups of configuration and data. svctool configures all indimail/indimail-mta services to be configured to run under supervise(8). When supervised services are created by svctool, a supervised log service is also created along with the service. The output and errors of all commands, run under supervise, get logged to logs in /var/log/svc directory using multilog(8). supervise(8) itself gets started by svscan(8). You can install svscan(8) to be started automatically, by the system, by using the command

svctool --config=add-boot.

Similarly, you can remove auto start of svscan by using the command

svctool --config=rm-boot.

svctool requires root privilege to run. svctool uses TMPDIR environment variable for operations that require a temporary directory. By default this is /tmp/indimail. You can set your own secure location for this variable.

svctool sources the file /etc/indimail/svctool.cnf for setting passwords used for accessing MySQL. You can set

MYSQL_PASS - password for accessing IndiMail MySQL database
PRIV_PASS  - password for MySQL user with admin privileges
ADMIN_PASS - password for MySQL user with shutdown privileges
REPL_PASS  - password for MySQL user with replication privileges

If the above file is not present, svctool uses hard coded, installation time defaults in the script. If you change any of the above passwords, you can store them in svctool.cnf. Please ensure that no unprivileged users have read/write access to svctool.cnf. When you run svctool the permissions of these file will be automatically changed for not allowing non-root users to have read/write access.

svctool can be used to dump the entire configuration of indimail on stdout

svctool --servicedir=/service --dumpconfig --cntrldir=/etc/indimail/control

or just the qmail configuration

svctool --servicedir=/service --showctl

svctool can check the status of your indimail installation with the following command

svctool --check-install --servicedir=/service \
  --qbase=/var/indimail/queue --qcount=5 --qstart=1

svctool logs its activity to /var/log/svc/svctool.log. svctool can do much more than what is summarized here. In fact, indimail, indimail-mta can be entirely setup by using svctool without requiring any commands to be run manually or files to be edited. The binary installation methods using RPM, debian packages use svctool to configure indimail-mta, indimail. You can find detailed options in the section Services & Environment variable below

Services & Environment variables

svctool primary function is to create supervised services in /service. The location of the service directory is specified by using the --servicedir option, the default being /service.

When you create any service, svctool stores the entire command line invocation wth arguments in /service/name/variables/.options. This allows svctool to recreate entire configuration for a service when you use the --refreshsvc option. Using envdir(8), supervise(8) services can be run with set of environment variables or a set of variables removed from the environment. The environment variables are those needed by applications run by supervise(8). These environment variables are stored as files in /service/name/variables directory. svctool can store all these environment variables set for a service in a single in /service/name/variables/.variables file. This file can be created by running the command

svctool --servicedir=/service --save-variables --force

Once you have saved all environment variables as key=value lines in a file, svctool can restore all environment variables to original state by running the command

svctool --servicedir=/service --restore-all-variables --force

name refers to a supervised service name. See svscan(8), supervise(8).

Options

Usage: svctool [OPTION]

Known values for OPTION are:

--smtp=Port --qbase=queue_path --qcount=N --qstart=I
  --servicedir=service_path
  [--cntrldir=cntrl_path]
  --localip=a --maxdaemons=m --maxperip=i
  [--no-multi]
  [--qtype=static|dynamic|compat]
  [--qmailqueue=qmailq]
  [--mysqlhost=mysqlhost --mysqluser=mysqluser --mysqlpass=mysqlpass]
  [--persistdb]
  [--dnscheck]
  [--helofqdn --helocheck]
  [--fsync --syncdir]
  [--qregex]
  [--memory=b]
  [--dmemory=c]
  [--msgqsize=Q]
  [--databytes=d]
  [--overquota_mailsize=o]
  [--domainlimits]
  [--authsmtp --forceauthsmtp --secureauth --enablecram --authall]
  [--chkrecipient --chksender --chkrelay --cugmail]
  [--masquerade] [--antispoof]
  [--routes=smtp|qmtp|static]
  [--cname-lookup]
  [--setuser-priv]
  [--sanitize-env=env_list]
  [--min-free=M --skipsend --deliverylimit-count=D --deliverylimit-size=S]
  [--rbl=list]
  [--content-filter=c]
  [--virus-filter=v]
  [--qhpsi=q]
  [--spamfilter=spamfilter_args]
  [--logfilter=logfifo]
  [--rejectspam=r --spamexitcode=e --localfilter --remotefilter]
  [--paranoid --dmasquerade]
  [--remote-authsmtp=b]
  [--odmr]
  [--starttls]
  [--ssl]
  [--forcetls]
  [--shared-objects=0|1]
  [--use-dlmopen=0|1]
  [--dkverify=dkim|none]
  [--dksign=dkim|none --private_key=private_key]
  [--password-cache] [--query-cache]
  [--smtp-plugin]
  [--setgroups]
  [--utf8]
  [--hide-host]
  [--barelf]
  --default-domain=domain

 Installs a new queue with a SMTP Listener
  m              - Concurrency of connections to allow
  i              - Concurrency of connections to be allowed from a
                   single ip address
  a              - IP Address to listen
  N              - No of Queues
  I              - Numeral Prefix of first queue (i.e 1 for /var/indimail/queue/queue1)
  M              - Minimum Disk Space to maintain in queue after which
                   Temporary error will be returned
  b              - Max Memory that SMTP can allocate
  c              - Max Memory that qscheduler can allocate
  Q              - Max number of bytes in POSIX message queues
  d              - Max size of email that can be submitted to SMTP or
                   injected locally
  D              - Max deliveries allowed per day for a user
  S              - Max sum total size of mails allowed per day for a user
  o              - Max size of mails to accept after user is overquota
  no-multi       - Do not set QMAILQUEUE to qmail-multi
  qtype          - Set multi-queue as static, dynamic or dynamic in compat mode
  qmailq         - Path to any qmail-queue compatabile binary
  Port           - Bind on this port for SMTP
  service_path   - Path where supervise service will be installed
  queue_path     - Path where the queues are installed. If this is different from
                   /var/indimail appropriate links will be created in
                   /var/indimail
  cntrl_path     - Path where Qmail control files are stored
  domainlimits   - Apply Domain Limits configured by vmoddomlimits(1)
  chkrecipient   - Perform a User Status query before accepting mails
                   (qmail-smtpd)
  chksender      - Enforce checks on local user and force authenticaion
                   (qmail-smtpd)
  cugmail        - Allow only local valid senders to use SMTP.
  antispoof      - Turn on antispoofing code
  authsmtp       - Enable Authenticated SMTP
  secureauth     - Disable AUTH PLAIN, LOGIN methods over un-encrypted channel
  forceauthsmtp  - Enforce Authenticated SMTP before accepting MAIL FROM
  enablecram     - Enable the pw_passwd field of indimail table to be used
                   for CRAM authenticated smtp methods
  authall        - Accept mails to both remote & local domains only after
                   AUTH SMTP or POP/IMAP before SMTP
  chkrelay       - Accept mails to remote domains only after AUTH SMTP or
                   POP/IMAP before SMTP (closed relay)
  qregex         - Use regular expressions for matching entries in
                   badmailfrom, badrcptto, blackholedsenders, spamignore
                   relaymailfrom, authdomains, chkrcptdomains,
                   chksenderdomains
  q              - Full path to an external virus scanner (like clamdscan)
  v              - Enable Virus/Attachment scanner. v can have following values
                   1 - Internal Scanner
                   2 - Internal + External + Attachment Scan
                   3 - Internal + Attachment Scan
                   4 - External + Attachment Scan
                   5 - External Scanner
                   6 - Attachment Scan
  content-filter - Enable content filtering against regex in bodycheck control
                   file or the filename given as argument to content-filter
  c              - Optional filename passed to content-filter argument
  spamfilter     - Spamfilter program along with arguments
  logfifo        - Capture additional status message from spamfilter in
                   qmail-logfifo logfile via logfifo
  r              - Mails get rejected as spam if exit status of spamfilter
                   equals the value of spamexitcode. r can have following values
                   0 - Do not reject SPAM mails
                   1 - Bounce SPAM Mails.
                   2 - Blackhole SPAM Mails
  e              - Exit value of spamfilter that should be treated as spam
  localfilter    - enable filtering of mails to qmail-local
  remotefilter   - enable filtering of mails to qmail-remote
  routes         - Perform SMTPROUTE / QMTPROUTE / static routing
  cname-lookup   - Perform CNAME lookup for recipient host in qmail-remote
  setuser-priv   - Set supplementary groups when run qmail-local
  env_list       - List of env variables to preserve when --sanitize-env
                   is given
  masquerade     - Allow user to change Mail From when using authenticated smtp
  rbl            - Deploy RBL lookups
  skipsend       - Skip creation of send script
  fsync          - Sync files and directories when writing files
  syncdir        - Use BSD style sync semantics for flushing directories
  dnscheck       - Check if mails can be sent to the sender domain
                   (domain should have a proper MX record)
  helofqdn       - Enforce . in the argument to HELO/EHLO
  helocheck      - Check validity of HELO domain
                   (domain should have a proper MX record)
  b              - Authenticated SMTP method to use by qmail-remote (plain, login, cram-md5)
  paranoid       - Paranoid hostaccess check
  dmasquerade    - Allow domains to be masqueraded from known IPs
  default-domain - default domain name for which this host will handle mails
  mysqlhost      - MySQL Host having authentication tables
  mysqluser      - Username for connecting to mysql
  mysqlpass      - Passwd for connecting to mysql
  odmr           - Setup SMTP for ODMR (On Demand Mail Relay)
  private_key    - Path to Private key created by dknewkey
  starttls       - Advertise STARTTLS capability
  forcetls       - Force client to issue STARTTLS
  ssl            - Use SSL encrypted communication
  persistdb      - Enables qmail-lspawn to have persistent MySQL connection and set
                   PWSTRUCT environment variable. This eliminates the need for
                   vdelivermail to make a MySQL connection and hence improves
                   delivery times.
  password-cache - Enable caching of passwords (auth smtp)
  query-cache    - Enable caching of queries   (auth smtp)
  shared-objects - Enabled tcpserver plugins, 0 - disabled, 1 - enabled
  use-dlmopen    - Use dlmopen() instead of dlopen() to load shared objects
  smtp-plugin    - Enable SMTP Plugin support
  setgroups      - Add addition supplementary groups
  utf8           - Enable Email Address Internationalization Support (SMTPUTF8)
  hide-host      - Skip host names and IP addresses in received headers
  barelf         - Convert bare LF into CRLF

--delivery=ident --qbase=queue_path --qcount=N --qstart=I
  --servicedir=service_path
  [--cntrldir=cntrl_path]
  [--no-multi]
  [--qtype=static|dynamic|compat]
  [--qmailqueue=qmailq]
  [--mysqlhost=mysqlhost --mysqluser=mysqluser --mysqlpass=mysqlpass]
  [--persistdb]
  [--fsync --syncdir]
  [--qregex]
  [--dmemory=c]
  [--msgqsize=Q]
  [--overquota_mailsize=o]
  [--domainlimits]
  [--routes=smtp|qmtp|static]
  [--cname-lookup]
  [--setuser-priv]
  [--sanitize-env=env_list]
  [--min-free=M --deliverylimit-count=D --deliverylimit-size=S]
  [--logfilter=logfifo]
  [--localfilter --remotefilter]
  [--dkverify=dkim|none]
  [--dksign=dkim|none --private_key=private_key]
  [--remote-authsmtp=b]
  [--ssl]
  [--setgroups]
  [--utf8]
  [--hide-host]
  --default-domain=domain

 Installs a new queue with a delivery daemon
  N              - No of Queues
  I              - Numeral Prefix of first queue (i.e 1 for /var/indimail/queue/queue1)
  M              - Minimum Disk Space to maintain in queue after which
                   Temporary error will be returned
  c              - Max Memory that qscheduler can allocate
  Q              - Max number of bytes in POSIX message queues
  D              - Max deliveries allowed per day for a user
  S              - Max sum total size of mails allowed per day for a user
  o              - Max size of mails to accept after user is overquota
  no-multi       - Do not set QMAILQUEUE to qmail-multi
  qtype          - Set multi-queue as static, dynamic or dynamic in compat mode
  qmailq         - Path to any qmail-queue compatabile binary
  service_path   - Path where supervise service will be installed
  queue_path     - Path where the queues are installed. If this is different from
                   /var/indimail appropriate links will be created in
                   /var/indimail
  cntrl_path     - Path where Qmail control files are stored
  domainlimits   - Apply Domain Limits configured by vmoddomlimits(1)
  qregex         - Use regular expressions for matching entries in
                   badmailfrom, badrcptto, blackholedsenders, spamignore
                   relaymailfrom, authdomains, chkrcptdomains,
                   chksenderdomains
  spamfilter     - Spamfilter program along with arguments
  logfifo        - Capture additional status message from spamfilter in
                   qmail-logfifo logfile via logfifo
  r              - Mails get rejected as spam if exit status of spamfilter
                   equals the value of spamexitcode. r can have following values
                   0 - Do not reject SPAM mails
                   1 - Bounce SPAM Mails.
                   2 - Blackhole SPAM Mails
  e              - Exit value of spamfilter that should be treated as spam
  localfilter    - enable filtering of mails to qmail-local
  remotefilter   - enable filtering of mails to qmail-remote
  routes         - Perform SMTPROUTE / QMTPROUTE / static routing
  cname-lookup   - Perform CNAME lookup for recipient host in qmail-remote
  setuser-priv   - Set supplementary groups when run qmail-local
  env_list       - List of env variables to preserve when --sanitize-env
                   is given
  fsync          - Sync files and directories when writing files
  syncdir        - Use BSD style sync semantics for flushing directories
  paranoid       - Paranoid hostaccess check
  dmasquerade    - Allow domains to be masqueraded from known IPs
  default-domain - default domain name for which this host will handle mails
  mysqlhost      - MySQL Host having authentication tables
  mysqluser      - Username for connecting to mysql
  mysqlpass      - Passwd for connecting to mysql
  private_key    - Path to Private key created by dknewkey
  persistdb      - Enables qmail-lspawn to have persisten MySQL connection and set
                   PWSTRUCT environment variable. This eliminates the need for
                   vdelivermail to make a MySQL connection and hence improves
                   delivery times.
  b              - Authenticated SMTP method to use by qmail-remote (plain, login, cram-md5)
  ssl            - Use SSL encrypted communication in qmail-remote
  setgroups      - Add addition supplementary groups
  utf8           - Enable Email Address Internationalization Support (SMTPUTF8)
  hide-host      - Skip host names and IP addresses in received headers

--slowq --qbase=queue_path
  --servicedir=service_path
  [--cntrldir=cntrl_path]
  [--mysqlhost=mysqlhost --mysqluser=mysqluser --mysqlpass=mysqlpass]
  [--persistdb]
  [--fsync --syncdir]
  [--qregex]
  [--dmemory=c]
  [--overquota_mailsize=o]
  [--domainlimits]
  [--routes=smtp|qmtp|static]
  [--cname-lookup]
  [--setuser-priv]
  [--sanitize-env=env_list]
  [--min-free=M --deliverylimit-count=D --deliverylimit-size=S]
  [--localfilter --remotefilter]
  [--dkverify=dkim|none]
  [--dksign=dkim|none --private_key=private_key]
  [--remote-authsmtp=b]
  [--ssl]
  [--setgroups]
  [--utf8]
  [--hide-host]
  --default-domain=domain

 Installs a new queue with a delivery daemon
  M              - Minimum Disk Space to maintain in queue after which
                   Temporary error will be returned
  c              - Max Memory that slowq-start can allocate
  D              - Max deliveries allowed per day for a user
  S              - Max sum total size of mails allowed per day for a user
  o              - Max size of mails to accept after user is overquota
  service_path   - Path where supervise service will be installed
  queue_path     - Path where the queues are installed. If this is different from
                   /var/indimail appropriate links will be created in
                   /var/indimail
  cntrl_path     - Path where Qmail control files are stored
  domainlimits   - Apply Domain Limits configured by vmoddomlimits(1)
  qregex         - Use regular expressions for matching entries in
                   badmailfrom, badrcptto, blackholedsenders, spamignore
                   relaymailfrom, authdomains, chkrcptdomains,
                   chksenderdomains
  localfilter    - enable filtering of mails to qmail-local
  remotefilter   - enable filtering of mails to qmail-remote
  routes         - Perform SMTPROUTE / QMTPROUTE / static routing
  cname-lookup   - Perform CNAME lookup for recipient host in qmail-remote
  setuser-priv   - Set supplementary groups when run qmail-local
  env_list       - List of env variables to preserve when --sanitize-env
                   is given
  fsync          - Sync files and directories when writing files
  syncdir        - Use BSD style sync semantics for flushing directories
  paranoid       - Paranoid hostaccess check
  dmasquerade    - Allow domains to be masqueraded from known IPs
  default-domain - default domain name for which this host will handle mails
  mysqlhost      - MySQL Host having authentication tables
  mysqluser      - Username for connecting to mysql
  mysqlpass      - Passwd for connecting to mysql
  private_key    - Path to Private key created by dknewkey
  persistdb      - Enables qmail-lspawn to have persisten MySQL connection and set
                   PWSTRUCT environment variable. This eliminates the need for
                   vdelivermail to make a MySQL connection and hence improves
                   delivery times.
  b              - Authenticated SMTP method to use by qmail-remote (plain, login, cram-md5)
  ssl            - Use SSL encrypted communication in qmail-remote
  setgroups      - Add addition supplementary groups
  utf8           - Enable Email Address Internationalization Support (SMTPUTF8)
  hide-host      - Skip host names and IP addresses in received headers

--queueParam=dir --qbase=queue_path --qcount=N --qstart=I
  [--cntrldir=cntrl_path]
  [--min-free=M]
  [--no-multi]
  [--qmailqueue=qmailq]
  [--fsync --syncdir]
  [--qregex]
  [--content-filter=c]
  [--virus-filter=v]
  [--qhpsi=q]
  [--spamfilter=spamfilter_args]
  [--logfilter=logfifo]
  [--rejectspam=r --spamexitcode=e --localfilter --remotefilter]
  [--dkverify=dkim|none]
  [--dksign=dkim|none --private_key=private_key]
  [--hide-host]
  [--death=death]

 Installs a new queue without a SMTP Listener
  dir            - dir where to install queuedef environment variable directory
  queue_path     - Path where the queues are installed. If this is different from
                   /var/indimail appropriate links will be created in
                   /var/indimail
  N              - No of Queues
  I              - Numeral Prefix of first queue (i.e 1 for /var/indimail/queue/queue1)
  cntrl_path     - Path where Qmail control files are stored
  M              - Minimum Disk Space to maintain in queue after which
                   Temporary error will be returned
  no-multi       - Do not set QMAILQUEUE to qmail-multi
  qmailq         - Path to any qmail-queue compatabile binary
  qregex         - Use regular expressions for matching entries in
                   badmailfrom, badrcptto, blackholedsenders, spamignore
                   relaymailfrom, authdomains, chkrcptdomains
                   chksenderdomains
  q              - Full path to an external virus scanner (like clamdscan)
  v              - Enable Virus/Attachment scanner. v can have following values
                   1 - Internal Scanner
                   2 - Internal + External + Attachment Scan
                   3 - Internal + Attachment Scan
                   4 - External + Attachment Scan
                   5 - External Scanner
                   6 - Attachment Scan
  content-filter - Enable content filtering against regex in bodycheck control
                   file or the filename given as argument to content-filter
  c              - Optional filename passed to content-filter argument
  spamfilter     - Spamfilter program along with arguments
  logfifo        - Capture additional status message from spamfilter in
                   qmail-logfifo logfile via logfifo
  r              - Mails get rejected as spam if exit status of spamfilter
                   equals the value of spamexitcode. r can have following values
                   0 - Do not reject SPAM mails
                   1 - Bounce SPAM Mails.
                   2 - Blackhole SPAM Mails
  e              - Exit value of spamfilter that should be treated as spam
  fsync          - Sync files and directories when writing files
  syncdir        - Use BSD style sync semantics for flushing directories
  private_key    - Path to Private key created by dknewkey
  hide-host      - Skip host names and IP addresses in received headers
  death          - Value in seconds maximum time qmail-queue will run after
                   which it will self terminate

--greylist=port --min-resend-min=m --resend-win-hr=g --timeout-days=t
  --context-file=f --save_interval=s --whitelist=w --hash-size=s
  --localip=a --use-greydaemon --servicedir=service_path

  Installs a new Greylist Daemon
  a              - IP Address to listen
  Port           - Bind on this port for qmail-greyd
  service_path   - Path where supervise service will be installed
  m              - Minimum resend time after which mail will be accepted
  g              - Window in which mail must be seen
  t              - Max period for a mail to be received after which IP will be removed
                   from whitelist
  s              - Size of hash table (0 to disable hashing)
  context_file   - File in which context information is saved for startup
  save_interval  - Time interval in which context file gets saved
  whitelist      - List of whitelisted IP
  use-greydaemon - Use John Levine's greydaemon

--tlsa=port --timeout-days=t --context-file=f --save_interval=s --whitelist=w
  --hash-size=s --localip=a --servicedir=service_path

  Installs a new qmail-daned TLSA verification Daemon
  a              - IP Address to listen
  Port           - Bind on this port for qmail-greyd
  service_path   - Path where supervise service will be installed
  t              - Max period for a mail to be received after which IP will be removed
                   from whitelist
  s              - Size of hash table (0 to disable hashing)
  context_file   - File in which context information is saved for startup
  save_interval  - Time interval in which context file gets saved
  whitelist      - List of whitelisted IP

--qmtp=Port --qbase=queue_path --qcount=N --qstart=I
  --servicedir=service_path
  [--cntrldir=cntrl_path]
  --localip=a --maxdaemons=m --maxperip=i
  [--fsync --syncdir]
  [--memory=b --min-free=M]
  [--databytes=d]
  [--qhpsi=q]
  [--spamfilter=spamfilter_args]
  [--logfilter=logfifo]
  [--rejectspam=r --spamexitcode=e]
  [--dkverify=dkim|none]
  [--dksign=dkim|none --private_key=private_key]

 Installs a new queue with a QMTP Listener
  m              - Concurrency of connections to allow
  i              - Concurrency of connections to be allowed from a
                   single ip address
  a              - IP Address to listen
  N              - No of Queues
  I              - Numeral Prefix of first queue (i.e 1 for /var/indimail/queue/queue1)
  M              - Minimum Disk Space to maintain in queue after which
                   Temporary error will be returned
  b              - Max Memory that QMTP can allocate
  d              - Max size of email that can be submitted to SMTP or
                   injected locally
  Port           - Bind on this port for QMTP
  service_path   - Path where supervise service will be installed
  queue_path     - Path where the queues are installed. If this is different from
                   /var/indimail appropriate links will be created in
                   /var/indimail
  cntrl_path     - Path where Qmail control files are stored
  fsync          - Sync files and directories when writing files
  syncdir        - Use BSD style sync semantics for flushing directories
  q              - Full path to an external virus scanner (like clamdscan)
  spamfilter     - Spamfilter program along with arguments

  logfifo        - Capture additional status message from spamfilter in
                   qmail-logfifo logfile via logfifo
  r              - Mails get rejected as spam if exit status of spamfilter
                   equals the value of spamexitcode. r can have following values
                   0 - Do not reject SPAM mails
                   1 - Bounce SPAM Mails.
                   2 - Blackhole SPAM Mails
  e              - Exit value of spamfilter that should be treated as spam
  private_key    - Path to Private key created by dknewkey

--qmqp=Port --qbase=queue_path --qcount=N --qstart=I
  --servicedir=service_path
  [--cntrldir=cntrl_path]
  --localip=a --maxdaemons=m --maxperip=i
  [--fsync --syncdir]
  [--memory=b --min-free=M]
  [--qhpsi=q]
  [--spamfilter=spamfilter_args]
  [--logfilter=logfifo]
  [--rejectspam=r --spamexitcode=e]
  [--dkverify=dkim|none]
  [--dksign=dkim|none --private_key=private_key]

 Installs a new queue with a QMQP Listener
  m              - Concurrency of connections to allow
  i              - Concurrency of connections to be allowed from a
                   single ip address
  a              - IP Address to listen
  N              - No of Queues
  I              - Numeral Prefix of first queue (i.e 1 for /var/indimail/queue/queue1)
  M              - Minimum Disk Space to maintain in queue after which
                   Temporary error will be returned
  b              - Max Memory that QMTP can allocate
  Port           - Bind on this port for QMTP
  service_path   - Path where supervise service will be installed
  queue_path     - Path where the queues are installed. If this is different from
                   /var/indimail appropriate links will be created in
                   /var/indimail
  cntrl_path     - Path where Qmail control files are stored
  fsync          - Sync files and directories when writing files
  syncdir        - Use BSD style sync semantics for flushing directories
  q              - Full path to an external virus scanner (like clamdscan)
  spamfilter     - Spamfilter program along with arguments

  logfifo        - Capture additional status message from spamfilter in
                   qmail-logfifo logfile via logfifo
  r              - Mails get rejected as spam if exit status of spamfilter
                   equals the value of spamexitcode. r can have following values
                   0 - Do not reject SPAM mails
                   1 - Bounce SPAM Mails.
                   2 - Blackhole SPAM Mails
  e              - Exit value of spamfilter that should be treated as spam
  private_key    - Path to Private key created by dknewkey

--imap=Port --servicedir=service_path
  --localip=a --maxdaemons=m --maxperip=i
  --default-domain=domain
  --certdir=certdir
  [--domainlimits --nolastauth]
  [--proxy=destport]
  [--infifo=fifo_path]
  [--legacyserver]
  [--postmaster=user[@domain]]
  [--query-cache]
  [--ssl|--tlsprog|--starttls]

  Installs a new IMAP4 Listner
  Port           - Bind on this port for IMAP
  service_path   - Path where supervise service will be installed
  certdir        - Path for openssl server certificates
  domainlimits   - Apply Domain Limits configured by vmoddomlimits(1)
  nolastauth     - Do not update lastauth
  proxy          - Install as a proxy and connect to actual imap on destport
  legacyserver   - To be set if destination IMAP server is not Indimail's IMAP server
  fifo_path      - Install fifo specified by this path
                   (e.g. /var/indimail/inquery/infifo)
  postmaster     - name of the user who will be the contact for Certificates.
  common_name    - Common Name (CN) for server
  query-cache    - Enable caching of queries
  tlsprog        - External progam to enable TLS session
  starttls       - Advertise STARTTLS capability
  ssl            - Use SSL encrypted communication
  m              - Concurrency of connections to allow
  i              - Concurrency of connections to be allowed from a
                   single ip address
  a              - IP Address to listen
  domain         - default domain name for which this host will handle mails

--pop3=Port --servicedir=service_path
  --localip=a --maxdaemons=m --maxperip=i
  --default-domain=domain
  --certdir=certdir
  [--domainlimits --nolastauth]
  [--proxy=destport]
  [--legacyserver]
  [--postmaster=user[@domain]]
  [--common_name=CN]
  [--query-cache]
  [--ssl|--tlsprog|--starttls]

  Installs a new POP3 Listner
  Port           - Bind on this port for POP3
  service_path   - Path where supervise service will be installed
  certdir        - Path for openssl server certificates
  domainlimits   - Apply Domain Limits configured by vmoddomlimits(1)
  nolastauth     - Do not update lastauth
  proxy          - Install as a proxy
  legacyserver   - To be set if destination POP3 server is not Indimail's POP3 server
  postmaster     - name of the user who will be the contact for Certificates.
  common_name    - Common Name (CN) for server
  query-cache    - Enable caching of queries
  tlsprog        - External progam to enable TLS session
  starttls       - Advertise STARTTLS capability
  ssl            - Use SSL encrypted communication
  m              - Concurrency of connections to allow
  i              - Concurrency of connections to be allowed from a
                   single ip address
  a              - IP Address to listen
  domain         - default domain name for which this host will handle mails

--inlookup=fifo_path --threads=N
  --servicedir=service_path
  --domainlimits
  [--activeDays=A]
  [--use-btree]
  [--max-btree-count=max_nodes]
  [--routes=smtp|qmtp|static]
  [--cntrldir=cntrl_path]
  [--password-cache] [--query-cache]

  Installs a new Fifo Server
  fifo_path      - Install fifo specified by this path
                   (e.g. /var/indimail/inquery/infifo)
  N              - No of parallel inlookup threads to spawn
  A              - Max days for which a user has been active
  service_path   - Path where supervise service will be installed
  cntrl_path     - Path where Qmail control files are stored
  domainlimits   - Apply Domain Limits configured by vmoddomlimits(1)
  use-btree      - Use Binary Tree algorithm to search for User records
  max_nodes      - Maximum number of Binary Nodes to allow
  password-cache - Enable caching of passwords
  query-cache    - Enable caching of queries
  routes         - Perform SMTPROUTE / QMTPROUTE / static routing

--pwdlookup=socket_path --threads=N --timeout=t
  [--mysqlhost=mysqlhost --mysqluser=mysqluser --mysqlpass=mysqlpass]
  [--mysqlport=port | --mysqlsocket=socket]
  --servicedir=service_path

  Installs a new Name Service Password Lookup Daemon
  socket_path    - Use socket_path as communication between
                   NSS clients and NSS Password Lookup server
  N              - No of parallel pwdlookup threads to spawn
  t              - Timeout wait for new Password Request
  mysqlhost      - MySQL Host having authentication tables
  mysqluser      - Username for connecting to mysql
  mysqlpass      - Passwd for connecting to mysql
  mysqlport      - Port for connecting to mysql
  mysqlsocket    - Unix Domain Socket for connecting to mysql
  service_path   - Path where supervise service will be installed

--indisrvr=Port --mysqlhost=mysqlhost --mysqluser=mysqluser --mysqlpass=mysqlpass
  --localip=a --maxdaemons=m --maxperip=i
  --domainlimits
  --avguserquota=quota --hardquota=quota
  --base_path=path --servicedir=service_path

  Installs a new Indi Admin Server
  Port           - TCP/IP port on which to bind
  mysqlhost      - MySQL Host having authentication tables
  mysqluser      - Username for connecting to mysql
  mysqlpass      - Passwd for connecting to mysql
  avguserquota   - Average Usage per user in Bytes
  hardqutoa      - Max Quota for a user
  base_path      - Default Filesystem Path for user mailbox creation
  m              - Concurrency of connections to allow
  i              - Concurrency of connections to be allowed from a
                   single ip address
  a              - IP Address to listen
  service_path   - Path where supervise service will be installed
  domainlimits   - Apply Domain Limits configured by vmoddomlimits(1)

--mysql=mysqlport --mysqlPrefix=mysqlPrefix --databasedir=databasedir
  --config=conf_file --servicedir=service_path
  [--mysqlsocket=socket]
  [--default-domain=domain]

  Installs a new MySQL Server
  mysqlport      - Install MySQL to listen on this port
  mysqlPrefix    - Installation Prefix for mysql
  databasedir    - Directory containing the Database and Logs
  mysqlsocket    - Unix Domain Socket for connecting to mysql
  config         - MySQL Configuration file (e.g. /etc/indimail/indimail.cnf)
  service_path   - Path where supervise service will be installed
  default-domain - default domain name for which this host will handle mails

--fetchmail --qbase=queue_path --qcount=N --qstart=I --servicedir=service_path
  [--cntrldir=cntrl_path]
  --default-domain=domain
  [--silent]
  [--fsync --syncdir]
  [--domainlimits]
  [--memory=b --min-free=M]
  [--spamfilter=spamfilter_args]
  [--logfilter=logfifo]
  [--rejectspam=r --spamexitcode=e]
  [--qhpsi=q]
  [--dkverify=dkim|none]

  Install Fetchmail Server
  queue_path     - Path where the queues are installed. If this is different from
                   /var/indimail appropriate links will be created in
                   /var/indimail
  N              - No of Queues
  I              - Numeral Prefix of first queue (i.e 1 for /var/indimail/queue/queue1)
  M              - Minimum Disk Space to maintain in queue after which
                   Temporary error will be returned
  b              - Max Memory that Fetchmail can allocate
  service_path   - Path where supervise service will be installed
  cntrl_path     - Path where Qmail control files are stored
  fsync          - Sync files and directories when writing files
  syncdir        - Use BSD style sync semantics for flushing directories
  silent         - Display minimal output on stdout
  domainlimits   - Apply Domain Limits configured by vmoddomlimits(1)
  q              - Full path to an external virus scanner (like clamdscan)
  spamfilter     - Spamfilter program along with arguments
  logfifo        - Capture additional status message from spamfilter in
                   qmail-logfifo logfile via logfifo
  r              - Mails get rejected as spam if exit status of spamfilter
                   equals the value of spamexitcode. r can have following values
                   0 - Do not reject SPAM mails
                   1 - Bounce SPAM Mails.
                   2 - Blackhole SPAM Mails
  e              - Exit value of spamfilter that should be treated as spam
  default-domain - default domain name for which this host will handle mails
  silent         - be less verbose

--qscanq --servicedir=service_path [--scanint=n]

  service_path - Path where supervise service will be installed
  n            - Scan interval for Virus scanning

--clamd --servicedir=service_path --clamdPrefix=clamdPrefix
  [--sysconfdir=sysconfdir]

  service_path - Path where supervise service will be installed
  clamdPrefix  - Installation Prefix for clamd
  sysconfdir   - Path for config files (scan.conf)

--poppass=Port --localip=a --setpassword=cmd --maxdaemons=m --maxperip=i
  --servicedir=service_path
  [--memory=b]
  [--certfile=certificate --ssl]
  Port           - TCP/IP port on which to bind
  m              - Concurrency of connections to allow
  i              - Concurrency of connections to be allowed from a
                   single ip address
  b              - Max Memory to allocate for poppassd
  a              - IP Address to listen
  cmd            - Path of a setpassword compatible program
  certficate     - Path to openssl certificate
  ssl            - Use SSL encrypted communication
  service_path - Path where supervise service will be installed

  Installs a new IndiMail poppassd Server

--udplogger=udp_port --servicedir=service_path --localip=1 --timeout=t
  Port         - UDP/IP port on which to bind
  a            - IP Address to listen
  t            - Timeout for reads
  service_path - Path where supervise service will be installed

--fifologger=fifo_path --servicedir=service_path
  fifo_path    - Path to a writeable fifo which can be used by
                 any application to log messages to qmail-logfifo
                 service
  service_path - Path where supervise service will be installed

--svscanlog --servicedir=service_path [--initcmd=cmmd --scanint=n --resolvconf]

  service_path - Path where supervise service will be installed
  cmmd         - Program/Script to run instead of .svscan/run
  n            - Scan interval for svscan command
  --resolvconf - mount /etc/indimail/resolv.conf as /etc/resolv.conf
                 Use if you have dnscache installed in $servicedir/dnscache

--unshare
  use unshare to mount private /etc/resolv.conf for using local dns

--mrtg=htmldir --servicedir=service_path [--scanint=n]
  htmldir      - Path in /var/www/html directory
  service_path - Path where supervise service will be installed
  n            - Scan interval for mrtg command

--down
  Create any of the above supervisor services in down state

--showctl=DIR || --showctl

  Shows Qmail Control Information for Control Directory at DIR or /etc/indimail

--dumpconfig --servicedir=service_path --cntrldir=cntrl_path

  Dumps all service configuration for Supervise Scripts, control files and software information
  service_path - Path where supervise service will be installed
  cntrl_path   - Path where Qmail control files are stored

--queuefix=queue_path

  Fix Qmail Queue where queue_path is the absolute path of a queue

--rmsvc=service_path

  Disable supervise for service
  service_path   - Full path of service
                   e.g. (/service/qmail-smtpd.25)
                   (give multiple services enclosed in double quotes)
                   "/service/qmail-smtpd.25 /service/qmail-imapd.143"

--ensvc=service_path

  Enable supervise for service
  service_path   - Full path of service
                   e.g. (/service/qmail-smtpd.25)
                   (give multiple services enclosed in double quotes)
                   "/service/qmail-smtpd.25 /service/qmail-imapd.143"

--refreshsvc=service_path
  [--run-file-only] [--force]

  Refresh run script and variables for a supervise service
  service_path   - Full path of service
                   e.g. (/service/qmail-smtpd.25)
                   (give multiple services enclosed in double quotes)
                   "/service/qmail-smtpd.25 /service/qmail-imapd.143"
                   service_path can be "all" to act on all services
  run-file-only  - Recreate run files but not variables
  force          - Recreate service even if it has norefreshsvc flag
  NOTE: if the file .norefreshsvc is present in the variable or the config
  directory, refresh is skipped

--autorefresh="0|1 service_path"

  Disable/Enable auto refresh of supervise scripts for service
  0              - Disable autorefresh (create .norefreshsvc in variables directory)
  1              - Enable  autorefresh (delete .norefreshsvc in variables directory)
  service_path   - name of service with full path
                   e.g. (/service/qmail-smtpd.25)
                   service_path can be "all" to act on all services

--enable-service name1 name2 ..

  Add a service to be started at system boot. The unit file for the service should exist
  name1 name2 .. - name of a service or list of services to be added
                   This should be a SYSV style service, systemd, event.d unit file

--disable-service name1 name2 ..

  Remove a service to be started at system boot. The unit file for the service should exist
  name1 name2 .. - name of a service or list of services to be removed
                   This should be a SYSV style service, systemd, event.d unit file

--set-variable=n --variable-value=v
  --servicedir=service_path
  --service-name=service_name
  [--force]

  Set a new variable for a supervise service
  n              - variable name
  v              - variable value
  service_path   - Path where supervise service will be installed
  service_name   - Service name
  force          - Overwrite variable if it exists

--modify-variable=n --variable-value=v
  --servicedir=service_path
  --service-name=service_name
  [--force]

  Modify an existing variable for a supervise service
  n              - variable name
  v              - variable value
  service_path   - Path where supervise service will be installed
  service_name   - Service name
  force          - Set the variable even if does not exist

--unset-variable=n
  --servicedir=service_path
  --service-name=service_name

  Unset any existing environment variable named 'n'
  n              - variable name
  service_name   - Service name

--remove-variable=n
  --servicedir=service_path
  --service-name=service_name

  Remove an existing variable for a supervise service
  n              - variable name
  service_path   - Path where supervise service will be installed
  service_name   - Service name

--restore-variables
  --servicedir=service_path
  --service-name=service_name

  Clean and Restore all variables to original state from
  servicedir/service_name/variables/.variables file
  service_path   - Path where supervise service will be installed
  service_name   - name of supervise service without path
                   e.g. (qmail-smtpd.25)

--import-variables=file
  --servicedir=service_path
  --service-name=service_name
  [--force] [--silent]

  Import new environment variables from a file having one more multiple
  key=value pairs
  file           - File from which to import key=value environment variables
  service_path   - Path where supervise service will be installed
  service_name   - name of supervise service without path
                   e.g. (qmail-smtpd.25)
  force          - Set the variable if variable already exists
  silent         - be less verbose

--export-variables=file
  --servicedir=service_path
  --service-name=service_name
  [--force]

  Export existing environment variables to a file
  file           - File in which to save key=value environment variables
  service_path   - Path where supervise service will be installed
  service_name   - name of supervise service without path
                   e.g. (qmail-smtpd.25)
  force          - overwrite service_path/service_name/variables/.variables

--save-variables
  --servicedir=service_path

  Export variables for all service in /service and
  /etc/indimail/control/defaultqueue
  service_path   - Path where supervise service will be installed

--restore-all-variables
  --servicedir=service_path

  Restore all variables to orignal state for all service in
  /service and /etc/indimail/control/defaultqueue
  service_path   - Path where supervise service will be installed

--print-variables
  --servicedir=service_path
  --service-name=service_name | --envdir=dir

  Print environment variables for a service
  service_path   - Path where supervise service will be installed
  service_name   - name of supervise service without path
                   e.g. (qmail-smtpd.25)
  dir            - Environment variables directory

--print-all-variables
  --servicedir=service_path

  Print environment variables all services
  service_path   - Path where supervise service will be installed

--config=mysql|ssl_rsa|mysqldb|qmail|users|rmusers|nssd
--config=snmpdconf|clamd|foxhole|bogofilter|cert|add-boot|rm-boot
--config=add-alt|remove-alt|selinux|qselinux|iselinux|inittab|recontrol
  [--postmaster=user[@domain]]
  [--common_name=CN]
  [--validity_days=days]
  [--certdir=certdir]
  [--update-certs]
  [--capath=ca_path_dir]
  [--servicedir=service_path]
  [--default-domain=domain]
  [--mysqlPrefix=mysqlPrefix]
  [--mysqlhost=mysqlhost --mysqluser=mysqluser --mysqlpass=mysqlpass]
  [--mysqlport=port | --mysqlsocket=socket]
  [--cntrldir=cntrl_path]
  [--sysconfdir=sysconfdir]
  [--databasedir=databasedir]
  [--use-grant]
  [--module=module]
  [--stdout]
  [--wipe]

  mysql          - Create /etc/indimail/indimail.cnf
  mysqldb        - Create an initidalized MySQL db for IndiMail
  ssl_rsa        - Create SSL/TLS Certs for MariaDB
  qmail          - Create default qmail control files
  users          - Create Internal System Users used by IndiMail
  rmusers        - Remove Internal System Users used by IndiMail
  snmpdconf      - create v2 /etc/snmpd/snmpd.conf
  nssd           - create /etc/indimail/nssd.conf
  clamd          - Create clamd configuration file
  bogofilter     - Create bogofilter.cf configuration file
  cert           - Generate SSL Certificate
  add-boot       - Add startup scripts for IndiMail to get started during boot
  rm-boot        - Remove Startup scripts to prevent IndiMail to get started after boot
  add-alt        - Install indiamil as default MTA
  remove-alt     - Remove indimail as the default MTA
  selinux        - create selinux module from /etc/indimail/module.te
  iselinux       - Enable selinux module for indimail
  qselinux       - Enable selinux module for indimail-mta
  inittab        - Install svscan started by configuration in /etc/inittab
  recontrol      - Update control files having domain name configured with a
                   new domain
  postmaster     - name of the user who will recieve bounces on the local host.
                   This can also be a remote user i.e. &postmaster@indimail.org
  common_name    - Common Name (CN) for server
  days           - Number of days for which the Certificate should be valid
  cntrl_path     - Path where Qmail control files are stored
  sysconfdir     - Path for config files
  certdir        - Directory in which new certificates will be placed
  update-certs   - Update CERTDIR, CERTFILE and TLSCACHE for services using them
  ca_path_dir    - Directory having CA certificate
  service_path   - Path where supervise service have been installed
  default-domain - default domain name for which this host will handle mails
  mysqlPrefix    - Installation Prefix for mysql
  mysqlhost      - MySQL Host having authentication tables
  mysqluser      - Username for connecting to mysql
  mysqlpass      - Passwd for connecting to mysql
  mysqlport      - Port for connecting to mysql
  mysqlsocket    - Unix Domain Socket for connecting to mysql
  databasedir    - Directory containing the Database and Logs
  use-grant      - Use the usual create user and grant statements for creating users
                   (implies --stdout)
  stdout         - Dump on the screen. Will not create a configuration
  wipe           - will wipe out users/assign (for config=qmail)

--check-install --servicedir=service_path --qbase=queue_path --qcount=N --qstart=I
  [--skip-sendmail]

  service_path  - Path where supervise service have been installed
  queue_path    - Path where the queues are installed.
  N             - No of Queues
  I             - Numeral Prefix of first queue (i.e 1 for /var/indimail/queue/queue1)
  skip-sendmail - Skip Checking sendmail paths in /usr/sbin and /usr/lib

--check-certs=[full path of certificate]
  Check certificate given as argument or
  Check IndiMail Certificates in /etc/indimail/certs without any arguments

--backup=backupdir --servicedir=service_path --mysqlPrefix=mysqlPrefix

  mysqlPrefix  - Installation Prefix for mysql
  backupdir    - Directory to dump backup

--repair-tables
  Repair MySQL tables in /var/indimail/mysqldb/data

--mysqlupgrade --mysqlPrefix=mysqlPrefix
  mysqlPrefix  - Installation Prefix for mysql

--fixsharedlibs

  fix mysql shared library in /etc/indimail/control/libmysql

--report=all| zddist| zdeferrals| zfailures| zoverall| zrecipients| zrhosts|
  zrxdelay| zsenders| zsendmail| zsuccesses| zsuids | zsmtp | zspam
  [--postmaster=user[@domain]]
  [--attach]
  [--logdir=multilog_base_dir]

  postmaster - name of the user who will recieve the report.
  attach     - zip and send the report as an attachment

--help

  display this help and exit

--version

  output version information

Global Directory Options

--cntrldir     - sets directory for indimail/qmail control files
--indimaildir  - sets base directory for mysqldb, domains, clamd, inquery
                 directory
--qmaildir     - sets base directory for alias, autoturn, qscanq, queue
                 directory

RETURN VALUE

svctool returns non-zero status on error.

SEE ALSO

create_services(8), IndiMail(7) initsvc(1), svscan(8), svstat(8), svc(8), supervise(8), multilog(8), indimail-services(7), qmail-showctl(8), drwxrwxr-x 5 root indimail 4096 Mar 16 23:47 domains drwxrwx--- 2 indimail qmail 4096 Mar 17 07:31 inquery drwxr-xr-x. 4 mysql mysql 4096 Dec 6 20:44 mysqldb drwxr-x--- 3 qscand qscand 4096 Mar 14 12:03 qscanq drwxr-xr-x. 20 root qmail 4096 Mar 14 12:03 queue

Clone this wiki locally