Skip to main content

Server Command (hcpd)

The hcpd daemon is the software which receives the instruction commands sent from the remote clients such as, the hcp (file transfer) command and the hrm (file delete) command and waits to execute them at the server side, which is available on Linux.

Basic Format

The basic format is as follows.

Usage: hcpd [OPTION]...
or : hcpd -q [OPTION]...
or : hcpd --auth-keys [OPTION]... [PATH]

Option List

The options for the hcpd commands are below.

Various Monitorings

DescriptionShort NameOption Name
Foreground executionfforeground
Investigation mode starts (deprecated)investigation

Log Management

DescriptionShort NameOption Name
Specify a system log output destinationllog-file
Specify various statistics log output destinationsLstat-log-file

Software Information Update

DescriptionShort NameOption Name
Check the application versionVversion
Check the configuration and input parameterstconfig-test
Display the hcpd daemon helphhelp

System Operating Environment Settings

DescriptionShort NameOption Name
Setting a path of the configuration filecconfig-file
Setting a file path to save a process IDppid-file
Setting a file path to save a license keyklicense
The stop commandqquit

Check System Information

DescriptionShort NameOption Name
Show system infosystem-info
Run host benchmarkrun-host-benchmark
Specify measurement categories on the benchmarkrun-host-benchmark-categories

Fetching User's Public Keys

DescriptionShort NameOption Name
Fetch authorized_keysauth-keys
Specify UID on fetching itauth-keys-uid
Specify user name on fetching itauth-keys-user
Specify user definition file path on fetching itauth-keys-hcp-users
Specify ability of system auth (PAM) on fetching itauth-keys-sys-auth-disabled
Speciry system auth (PAM) included always on fetching itauth-keys-sys-auth-regardless-user-def
Disable supplemental groups on fetching itauth-keys-no-supp-groups

Various Monitorings

f, foreground

=========================================================================
Supported OS : Linux.x86
Format : -f | --foreground
=========================================================================

Start the hcpd daemon in the foreground mode.

--
Example:
[root@localhost ~]# hcpd -f ...
--

investigation

=========================================================================
Supported OS : Linux.x86
Format : --investigation
=========================================================================

The hcpd daemon starts in the investigation mode. In the case of unexpected behaviors and so on, detailed log is output for the investigation. This mode is not suitable for the long-time use and the case where the high performance is required on the transmission, because a lot of logs are output. Kindly send the log to the application developer for its investigation, because it is not for users but for the developers.

This option is deprecated. Instead, detailed log data can be obtained with SystemLogLevel or DiagnosticLogLevel DEBUG.

Log Management

l, log-file

=========================================================================
Supported OS : Linux.x86
Format : -l <log-file-path> | --log-file=<log-file-path>
-------------------------------------------------------------------------
log-file-path
Default : none
Range of Values : path string of file system
=========================================================================

This option specifies a path of a file to which the hcpd daemon output logs.

--
Example:
[root@localhost ~]# hcpd -l /var/log/hcpd.log ...
--

When this option is not specified, the log is output as the standard output.

L, stat-log-file

=========================================================================
Supported OS : Linux.x86
Format : -L <log-file-path> | --stat-log-file=<log-file-path>
-------------------------------------------------------------------------
log-file-path
Default : none
Range of Values : path string of file system
=========================================================================

This option specifies the path of the statistic log file which the hcpd daemon outputs.

--
Example:
[root@localhost ~]# hcpd -L /var/tmp/.hcp.statistics2 ...
--

Each statistics log is output in the specified path with suffix.

<spciified path>.system (system statistics)
<spciified path>.application (application statistics)
<spciified path>.transport.tcp.service_<service number>.<service port>.thread_<thread number>.transport.tcp (TCPtransport statistics)
<spciified path>.transport.hpfp.service_<service number>.<t;service port>.thread_<thread number>(HpFPtransport statistics)
<spciified path>.transport.ws.service_<service number>.<t;service port>.thread_<thread number>(WS/WSStransport statistics)

When it is output by a non-privileged user with StatLogPerUserInPrivilegeSeparation enabled, it is recorded in the following path.

<spciified path>.application.<UID>_<GID> (Linux)
<spciified path>.application.<Username> (Windows)

When this option is not specified, it is output in the following path.

/var/tmp/.hcp.statistics

Software Information Update

V, version

=========================================================================
Supported OS : Linux.x86
Format : -V | --version
=========================================================================

Display the hcpd daemon version.

--
Example:
[root@localhost ~]# hcpd -V
hcp server (hcpd) 1.5.8_1 / Linux (HpFP2 2.0.0.91_26 WSAPI 0.0.1.36 WS 4.2.0-2)
--

t, config-test

=========================================================================
Supported OS : Linux.x86
Format : -t | --config-test
=========================================================================

Output the input parameters and the configuration data of the hcpd daemon.

--
Example:
[root@localhost ~]# hcpd -t
...

-- [Command Options] ------------------------------------------------------
Command parameters
foreground : disable
version : disable
help : disable
quit : disable
config-test : enable
pid-file : - [/var/run/hcpd.pid]
license : - [/etc/hcp/license.key]
config-file : - [/etc/hcp/hcpd.conf]
log-file : - [/var/log/hcpd.log]
stat-log-file : - [/var/tmp/.hcp.statistics]
run-host-benchmark : disable
run-host-benchmark-categories : - [all]
-- [Configuration Parameters] ---------------------------------------------
Configuration parameters
PubkeyAuthentication : yes
PAMAuthentication : yes
LocalPasswordAuthentication : no
MaxAuthTries : 6
PerformSystemAuthenticationRegardlessUsers : no
UserDirectoryFallbackAvailable : no
RejectOnUserHomeDirectoryNotFound : no
UsePrivilegeSeparation : yes [supp_group=yes]
PrivilegeSeparationMinimumUID : 0
PrivilegeSeparationMinimumGID : 0
PrivilegeSeparationUser : nobody
PrivilegeSeparationUmask : 0022 -
PrivilegeSeparationUmaskAnonymous : 0002 -
ApplyUserPermission : yes
AllowUsers : -
AllowGroups : -
DenyUsers : -
DenyGroups : -
UseServerCertificateSecurity : yes
RequireServerCertificateSecurity : yes
HeaderCompress : yes
ContentCompress : yes
OCSPRevocationEnabled : yes
AuthorizedKeysSearchDir : -
AuthorizedKeysFile : - [~/.ssh/authorized_keys ~/.hcp/authorized_keys]
AuthorizedKeysCommand : -
LocalUserFile : - [/etc/hcp/users usage=overwrite]
LocalPasswordFile : - [/etc/hcp/passwd]
ServerKeyFile : - [/etc/hcp/key/server.key]
ServerCertificateFile : - [/etc/hcp/cert/server.crt]
ServerCertificateChainFile : - [/etc/hcp/cert/chain.crt]
CACertificateFile : - [/etc/hcp/cacert.pem]
CACertificatePath : - [/etc/ssl]
CARevocationFile : - [/etc/hcp/crl.pem]
CARevocationPath : - [/etc/ssl]
ProtocolVersion : 2
MaxConcurrentThread : 0
MaxTotalConnection : 150
MaxTcpConnection : 50
MaxUdpConnection : 50
MaxWsConnection : 50
MaxConnectionPerUser : 50
MaxConnectionPerSec : 50
MaxRequestFileEntryAtOnce : 50
MaxReceiveFileSize : unlimited
MaxSendFileSize : unlimited
MaxTotalBufferSize : 4294967296
MaxBufferSizePerConnection : 104857600
MaxTotalReceiveRate : 100000000000
MaxTotalSendRate : 100000000000
MaxReceiveRate : 100000000000
MaxSendRate : 100000000000
MaxConnectionReceiveRate : 100000000000
MaxConnectionSendRate : 100000000000
InitHeaderBlockSize : 51200
InitContentBlockSize : 1048576
MaxHeaderBlockSize : 51200
MaxContentBlockSize : 1048576
TransportTimeout : 180 sec
IdleTimeout : 0 sec
FileLock : no
FileLockTrials : 0
FileLockTrialInterval : 3 sec
AtomicLikeSaving : no .tmp NONE [threshold=0, reject_ow_req=yes]
TCPListenAddress : 0.0.0.0:874[TCP tcp1, mcd=1]
HPFPListenAddress : 0.0.0.0:65520[HpFP udp1, sndbuf=104857600, rcvbuf=209715200, mss=-1, mcd=1]
ListenServiceBonding : -
UDPServiceExtensionBufferSize : 2147483648
TCPServiceSocketSendBuffer : 0
AcceptableCryptMethod : AES256/GCM AES256/CTR/VMAC AES256/CBC AES128/CBC [Intel:AES-NI=yes]
AcceptableDigestMethod : XXH3 SHA256 SHA160
RequireDataIntegrityChecking : yes
TransportCharEncoding : UTF8
DocPoint : /home
DocPath = /home
HomeIsolation = no
PermitAccessRead = yes
PermitAccessWrite = yes
PermitAccessOverwrite = yes
PermitAccessDelete = yes
PermitAccessRandomRead = no
PermitAccessRandomWrite = no
DocPointEnd
HostEncoding : UTF8
SyslogOption : LOG_CONS | LOG_PID
SyslogFacility : LOG_DAEMON
SystemLog : INFO yes Rotation[size=no:0:0, pattern=no:] -[/var/log/hcpd.log]
ApplicationStatLog : yes Rotation[size=no:0:0, pattern=no:]
TransportStatLog : no Rotation[size=no:0:0, pattern=no:]
SystemStatLog : yes Rotation[size=no:0:0, pattern=no:]
FileOperationLog : no -[/var/log/hcpd.file.operation.log] Rotation[size=no:0:0, pattern=no:]
CallbackScript : no Script[~/.hcp/callback.sh, data=~/.hcp/callback]
CallbackScriptHomeIsolation : no [logical=no]
CallbackScriptNoSymbolicLink : no
EnsureDestinationInFileTransfer : yes
StatLogPerUserInPrivilegeSeparation : no
ApplicationStatLogSecurityEx : yes
MemoryTransferConcurrency : 1 (wait_type cond, exp_nsec 1)
MaxReadRate : unlimited
MaxWriteRate : unlimited
DiskBenchmarkPreAllocation : none
DiskBenchmarkPreAllocationSize : 0
DiskBenchmarkDirectAlignmentSize : 0
DiskBenchmarkDirectMalloc : posix
DiskBenchmarkAsyncNoWait : no
DiskBenchmarkAsyncMaxEvents : 16
DiskBenchmarkAsyncMaxGetEvents : 1
DiskBenchmarkAsyncGetEventsTimeout : 0 usec
DiskBenchmarkAsyncRequestPoolSize : 32
DeepDiskBenchmarkFileSize : 17179869184
DeepDiskBenchmarkFreeSpaceRequired : 34359738368
DeepDiskBenchmarkBlockSizes : 16KB 32KB 64KB 256KB 512KB 1MB 2MB 4MB 8MB 16MB 24MB 32MB
------------------------------------------------------------------------------

h, help

=========================================================================
Supported OS : Linux.x86
Format : -h | --help
=========================================================================

Display the hcpd daemon help.

--
Example:
[root@localhost ~]# hcpd -h
--

System Operating Environment Settings

c, config-file

=========================================================================
Supported OS : Linux.x86
Format : -c <config-file-path> | --config-file=<config-file-path>
-------------------------------------------------------------------------
config-file-path
Default : none
Range of Values : path string of file system
=========================================================================

This option specifies the path of the configuration file that the hcpd daemon read. It is executed when normal users use the hcpd commands or when individual settings are necessary for each user.

--
Example:
[root@localhost ~]# hcpd -c /etc/hcp/hcpd2.conf ...
--

If this option is not specified, the configuration from the following file will be read.

/etc/hcp/hcpd.conf

p, pid-file

=========================================================================
Supported OS : Linux.x86
Format : -p <pid-file-path> | --pid-file=<pid-file-path>
-------------------------------------------------------------------------
pid-file-path
Default : /var/run/hcpd.pid
Range of Values : path string of file system
=========================================================================

This option specifies the file path in order to output the process ID of the hcpd daemon process.

--
Example:
[root@localhost ~]# hcpd -p /var/run/hcpd2.pid ...
--

Please note that if plural daemon processes are going to run or another daemon process has already run, the same file path is unavailable.

k, license

=========================================================================
Supported OS : Linux.x86
Format : -k <license-key-path> | --license=<license-key-path>
-------------------------------------------------------------------------
license-key-path
Default :
/etc/hcp/license.key
Range of Values : path string of file system
=========================================================================

The license key path is set.

--
Example:
[root@localhost ~]# hcpd -k /etc/hcp/license2.key ...
--

The path of the license key is specified. When this option is not specified, the license key will be read from the following path.

/etc/hcp/license.key

When the license key is not available to read, the trial license is applied with the following conditions.

total max throughput 1Gbps
Max throughput 1Gbps
TCP Max session 3
HpFP Max session 3
WS/WSS Max session 3
Max multiple connection degree per session 1

q, quit

=========================================================================
Supported OS : Linux.x86
Format : -q | --quit
=========================================================================

hcpd newly to run sends the signal to terminate the hcpd daemon working.

It gets the process ID from the specified file in the pid-file option or the default file and send the signal with the process ID to terminate the hcpd working.

--
Example:
[root@localhost ~]# hcpd -q ...
--

Check System Information

system-info

=========================================================================
Supported OS : Linux.x86
Format : --system-info
=========================================================================

This option tells hcpd to show the system information. The following contents will be displayed.

  • CPU brand name
  • Number of physical processors and logical processors
  • Hardware acceleration information around AES function
  • System memory size
  • Kernel information (Linux)
  • OS information
  • Host name

When specifying this option twice, the following contents will be displayed.

  • Disk consumption (df output, Linux)
  • Network interface detail
    --
    Example:
    [root@localhost ~]# hcpd --system-info ...
    --

run-host-benchmark

=========================================================================
Supported OS : Linux.x86
Format : --run-host-benchmark
=========================================================================

This option tells hcpd to make a benchmark of the local host about the following performances.

  • Security communication performance (AES, GCM/CTR/CBC mode, MD5, SHA1, SHA256)
  • File integrity validation performance (XXH3, Parity)
  • Disk reading & writing performance (Cached, Direct I/O)
  • Memory copy performance

When this option is specified twice, the benchmark run with some additional conditions.

  • Security communication performance (some additional AES benchmarks around block size and concurrency)
  • File integrity validation performance (some additional benchmarks about Parity calculation)
  • Disk reading & writing performance (some additional benchmarks around block size)
  • Memory copy performance (an additional benchmark on concurrency)
    --
    Example:
    [root@localhost ~]# hcpd --run-host-benchmark ...
    --

run-host-benchmark-categories

=========================================================================
Supported OS : Linux.x86
Format : --run-host-benchmark-categories=<categories>
-------------------------------------------------------------------------
categories
Default : all
Range of Values : secure, integrity, disk, memory, all
=========================================================================

You can specify measurement categories over which hcpd make the benchmark. The following values are available.

  • secure (security communication performance)
  • integrity (file integrity validation performance)
  • disk (disk reading & writing performance)
  • memory (memory copy performance)
  • all (all of the values above)

Please use this option to reduce measurements when it takes a long time.

--
Example:
[root@localhost ~]# hcpd --run-host-benchmark-categories=disk,memory ...
--

Fetching User's Public Keys

auth-keys

=========================================================================
Supported OS : Linux.x86
Format : --auth-keys
=========================================================================

This option tells hcpd to fetch public key data from the following files saved at a user home directory. The data will be written to the standard output.

  • ~/.ssh/authorized_keys
  • ~/.hcp/authorized_keys

When using this option, hcpd dose run as a service daemon.

When passing a path for this option, it will fetch the data form the given path where public keys are supposed to be saved at that place.

This option is primarily defined for hcpd fetching public keys on its public key authentication. Normally you do not have to use this option except for investigation of that fetching function (out of support on normal uses).

--
Example:
[root@localhost ~]# hcpd --auth-keys ... "~/.hcp/authorized_keys" // fetch only from the .hcp directory. suppress tilde expansion
--

auth-keys-uid

=========================================================================
Supported OS : Linux.x86
Format : --auth-keys-uid=<uid>
-------------------------------------------------------------------------
uid
Default : none
Range of Values : UID number
=========================================================================

This option specifies a UID used on fetching public key data.

--
Example:
[root@localhost ~]# hcpd --auth-keys --auth-keys-uid=1000 ...
--

auth-keys-user

=========================================================================
Supported OS : Linux.x86
Format : --auth-keys-user=<user_name>
-------------------------------------------------------------------------
user_name
Default : none
Range of Values : Unix acount user name
=========================================================================

This option specifies a user name used on fetching public key data.

--
Example:
[root@localhost ~]# hcpd --auth-keys --auth-keys-uid=user01 ...
--

auth-keys-hcp-users

=========================================================================
Supported OS : Linux.x86
Format : --auth-keys-hcp-users=<user_def_file_path>
-------------------------------------------------------------------------
user_def_file_path
Default : /etc/hcp/users
Range of Values : path string on file system of user definition file
=========================================================================

This option specifies a path string on a file system of user definition file.

--
Example:
[root@localhost ~]# hcpd --auth-keys --auth-keys-hcp-users=/etc/hcp/users.another.def ...
--

auth-keys-sys-auth-disabled

=========================================================================
Supported OS : Linux.x86
Format : --auth-keys-sys-auth-disabled
=========================================================================

This option tells hcpd to run fetching public key data as the system authentication (PAM) is disabled.

--
Example:
[root@localhost ~]# hcpd --auth-keys --auth-keys-sys-auth-disabled ...
--

auth-keys-sys-auth-regardless-user-def

=========================================================================
Supported OS : Linux.x86
Format : --auth-keys-sys-auth-regardless-user-def
=========================================================================

This option tells hcpd to run fetching public key data as the system authentication (PAM) will be performed regardless user definition.

--
Example:
[root@localhost ~]# hcpd --auth-keys --auth-keys-sys-auth-regardless-user-def ...
--

auth-keys-no-supp-groups

=========================================================================
Supported OS : Linux.x86
Format : --auth-keys-no-supp-groups
=========================================================================

This options disable supplemental groups on fetching public key data.

--
Example:

[root@localhost ~]# hcpd --auth-keys --auth-keys-no-supp-groups ...
--