APPX Connection Manager For Unix/Linux

This page describes how to install the APPX Connection Manager command and how to use it to install, configure, and manage APPX Connection Services on Unix/Linux systems.

The APPX Connection Manager command is used to configure and manage APPX Connection Services.

An APPX Connection Service:

  1. Waits for a connection request from an APPX Client;
  2. Validates the user ID and the password provided by the APPX Client;
  3. Initiates an APPX session for the APPX Client that requested a connection.

Installing the APPX Connection Manager Command ( appxdsvc)

The APPX Connection Manager ( appxdsvc) command is installed automatically when you install APPX on your system. The installer sets the necessary owner and permissions for the appxdsvc command.  So, there is nothing additional that you need to do to install the appxdsvc command. However, after you install APPX, you will need to run the appxdsvc command to configure and start an instance of the APPX Connection Service before any client connections may be established by users.

The appxdsvc command is installed into the "tools" subdirectory of the directory where you installed APPX. So, if you installed APPX in "/usr/local/appx", the full pathname to run the appxdsvc command will be "/usr/local/appx/tools/appxdsvc".

The appxdsvc command must run with the permissions of the root user.  Therefore, the owner of the appxdsvc command should be the root user and the SUID bit should be set so that the appxdsvc command can be run by users other than root but still be run with the permissions of root.

In the event that it is necessary to reset the permissions on the appxdsvc command, the following commands can be run by the root user to set the necessary owner and permissions for the appxdsvc command.

cd /usr/local/appx/tools
chown root appxdsvc
chmod 775 appxdsvc
chmod u+s appxdsvc

You can check the permissions of the appxdsvc command by running the following command:

ls -l appxdsvc

The correct permissions should be as follows:

-rwsrwxr-x 1 root root    636843 Jul 11 07:31 appxdsvc

Creating and Configuring an APPX Connection Service

On Unix/Linux systems, an instance of the APPX Connection Service is initially created, configured, and started by running the "appxdsvc" command with the -install option. At least one instance of the APPX Connection Service must be created, configured, and started before an APPX Client can initiate an APPX session. You may create, configure, and start as many different instances of the APPX Connection Service as you desire. However, each concurrently running instance must be configured to listen for connection requests on a different TCP/IP port.

Initial Configuration

The -install option of the appxdsvc command is used to initially create, configure, and start an instance of the APPX Connection Service. The following steps are performed:
  1. The APPX Connection Service configuration files are created(ini and env)
  2. The O/S service is created
  3. The service is started

Before clients can connect to an APPX system, at least one instance of the APPX Connection Service must be configured and started.

Configuration Changes

Two methods are available for modifying an existing instance of the APPX Connection Service.

Method 1 - appxdsvc command

The -modify option of the appxdsvc command is used to replace a previously configured instance of the APPX Connection Service. This option replaces the existing APPX Connection Service configuration files (ini and env) with two new files configured as specified.

Method 2 - Text Editor

Instead of using the -modify option of the appxdsvc command, you may also change a previously configured instance of the APPX Connection Service by directly editing the APPX Connection Service configuration files with the text editor of your choice. The configuration files include comments to help you make the desired changes.

Managing an APPX Connection Service

Two methods are available for managing an existing instance of the APPX Connection Service.

Method 1 - appxdsvc command

The appxdsvc command can be used to manage an instance of the APPX Connection Service. The appxdsvc command can be used to start, stop, restart, or display the status of an instance of an APPX Connection Service.

Method 2 - O/S Services

Your operating system includes commands or programs that can be used to manage services. APPX Connection Services can be managed with these tools. The actual commands and programs vary depending on your operating system.

Usage (appxdsvc)

NAME appxdsvc

SYNOPSIS (Configuration)

appxdsvc -install -port=PORT [options]... [VARIABLE=VALUE]...

appxdsvc -modify -serviceName=SERVICENAME [options]... [VARIABLE=VALUE]...

appxdsvc -remove {SERVICENAME | -serviceName=SERVICENAME}

SYNOPSIS (Management)

appxdsvc [-start | -stop | -restart | -status] {SERVICENAME | -serviceName=SERVICENAME}

DESCRIPTION

The appxdsvc command is used to configure and manage instances of the APPX Connection Service.

OPTIONS (Configuration)

-install -port=PORT [options]... [VARIABLE=VALUE]...
Configure and start a new Connection Service.

-modify -name=SERVICENAME [options]... [VARIABLE=VALUE]...

Replace an existing Connection Service with a new Connection Service.

-remove -servicename=SERVICENAME

Remove an existing Connection Service.

options

-port, -SockPort [Required with -install option]
Configure the service to listen for connection requests on the specified TCP/IP PORT number. This option is required with the -install option. You may choose any TCP/IP PORT number that is not reserved or already being used on your system.

-name, -ServiceName [Optional]

The specified SERVICENAME wiil be the name assigned to the Connection Manager service script that is created and to the related configuration files. The configuration file will have a file extension of "ini". If this option is omitted, the default SERVICENAME will be "appxd" followed by a "-" and the specified port number, e.g "appxd-8060".

-displayName, -DisplayName [Optional]

If you don't supply a display name we will append the port number to the end of the service name and use that as the display name. (The display name appears in the Services control panel)

-engine, -AppxExecutable

-AM, -AuthenticationMethod [Optional]

Acceptable values are 'OS-User', 'Appx-User', and 'HT-User(filename)'. With 'Appx-User' authentication, passwords are validated against the Appx user file With 'OS-User' authentication, passwords are validated by the operating system. With 'HT-User(filename)' authentication, passwords are validated against the named file (which you can maintain the Apache's htpasswd utility. If you choose 'Appx-User' authentication, you do not need a separate OS user account for each Appx user.

-serviceType, -ServiceType [Optional]

The only valid value when configuring a Connection Service is "Login".

-initScript

VARIABLE=VALUE [Optional]

You can include a space-separated list of environment variables at the end of the command line when you use the -install option. These environment variables will be saved in the env file that is created and will be given to the environment of the appx sessions that are started by the Connection Manager.

OPTIONS (Management)

-start | < blank >
Start an instance of the Connection Manager service using the configuration information in the SERVICENAME.ini and the SERVICENAME.env files.

-stop

Stop the instance of the Connection Manager service that was started with the SERVICENAME.ini file.

-restart

Restart (stop and then start) the instance of the Connection Manager that was started with the SERVICENAME.ini file.

-status

Report the status of the instance of the Connection Manager that was started with the SERVICENAME.ini file.

EXAMPLES

Example 1: Configure and start a new instance of the Connection Service that will listen for connection requests on port 8060:

appxdsvc -install -port=8060

Warning - the engine that you named has the setuid bit enabled
you may not want that bit set for the authentication method that you have chosen (OS-User)
To turn off the setuid bit, chmod u-s
../appx Configuration written to: appxd-8060.ini
Environment written to: appxd-8060.env
Service script written to: /etc/rc.d/init.d/appxd-8060
appxdsvc -install -port=8060 -name=appx8060 -displayName="Appx-Production(8060)" -engine=/usr/local/appx/appx APPXPATH=c:\appx\data APPX_KEYMAP=WINDOWS

Display the status of an instance of the Connection Service:

appxdsvc -status appx8060

Shutdown a running instance of the Connection Service:

appxdsvc -stop appx8060

Start a previously configured instance of the Connection Service:

appxdsvc -start appx8060

Example ini File

# Appx connection manager configuration file
#
#   You can change this file by hand, or
#   use the uappxd program for better results
#
#   blank lines are ignored
#
#   anything following a '#' is treated as a comment
#
#   case is not important on the left-hand side
#   properties whose descriptions end in a '?' are
#   boolean and should be set to true or false
# --------------------------------------------------
# AppxApplication         =                     #startup application for spawned engines
# AppxDatabase            =                     #startup database for spawned engines
AppxExecutable            = /usr/local/appx/appx    #pathname to Appx engine
# AppxProcessName         =                     #startup process name for spawned engines
# AppxProcessType         =                     #startup process type for spawned engines
AuthenticationMethod      = OS-User             #authentication method (OS-User, Appx-User, HT-User(filename))
DisplayName               = Login-8430          #descriptive name
ImpersonateGID            = true                #change effective grouo ID for spawned engines?
ImpersonateGroup          = NamedGroup(appxgrp) #[LogonUser, NamedGroup(groupname), ServiceOwner]
ImpersonateUID            = true                #change effective user ID for spawned engines?
ImpersonateUser           = NamedUser(appx)     #[LogonUser, NamedUser(username), ServiceOwner]
# IncludeSystemEnv        = true                #include service environment variables in spawned engines?
# LogDirectory            = /tmp                #directory where log file should reside
# LogNamePattern          = /tmp/appxlog%N.xml  #audit log filename pattern (see man strftime for details
# LogRotationInterval     = 86400               #number of seconds between audit log rotations
# LogRotationSize         = 1G                  #maximum audit log file size
# RequireSSL              = false               #Require SSL-secured connections?
# RequireSSLClientCertificates = false          #require SSL-client certificates?
# ServerCertificateFile   =                     #pathname of server's X509 certificate (leave blank for anonymous connections
# ServerPrivateKeyFile    =                     #pathname of server's private key file (unlocks the ServerCertificateFile)
# ServerPrivateKeyPassphrase =                  #passphrase that unlocks ServerPrivateKeyFile
# ServiceDisable          = false               #disable this service?
# ServiceDisableAppxKeys  = false               #disable keyboard mapping?
# ServiceDisableFMS       = false               #disable AppxNET connections?
# ServiceDisableLogins    = false               #disable interactive logins?
# ServiceEnableCmds       = true                #allow client-side startup options?
ServiceName               = appxd-8430          #name of service
ServiceType               = login               #service type (login or logmonitor)
SockPort                  = 8430                #port number to service
# SSLMode                 = Optional            #SSL connection type (optional, required, disabled, forcedOn, forcedOff)
# TCPEnableKeepAlive      = true                #Enable TCP dead-connection detection
# TCPKeepCount            = 8                   #Maximum number of keep-alive pings
# TCPKeepIdle             = 300                 #Idle time before ping sent to client (in seconds)
# TCPKeepInterval         = 60                  #Interval between keep-alive pings
# TCPNoDelay              = true                #disable TCP packet filling delay?
# TrustedCAFile           =                     #determines which client certificates to trust
# Umask                   =                     #umask (file creation mask) given to spawned engines

Example env File

# Appx connection manager environment variables
#
#   The entries in this file will become
#   environment variables in the engines
#   spawned by this service
#
#   blank lines are ignored
#
#   anything following a '#' is treated as a comment
#
#   letter case IS important in this file
# --------------------------------------------------
APPX_KEYMAP=WINDOWS

Comments:

Read what other users have said about this page or add your own comments.

-- Page added by: Steve - 17 Jul 2007
Edit | Attach | Watch | Print version | History: r68 | r12 < r11 < r10 < r9 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r10 - 2007-07-24 - SteveFrizzell
 
  • Edit
  • Attach
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback