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
Description | Short Name | Option Name |
---|---|---|
Foreground execution | f | foreground |
Investigation mode starts (deprecated) | investigation |
Log Management
Description | Short Name | Option Name |
---|---|---|
Specify a system log output destination | l | log-file |
Specify various statistics log output destinations | L | stat-log-file |
Software Information Update
Description | Short Name | Option Name |
---|---|---|
Check the application version | V | version |
Check the configuration and input parameters | t | config-test |
Display the hcpd daemon help | h | help |
System Operating Environment Settings
Description | Short Name | Option Name |
---|---|---|
Setting a path of the configuration file | c | config-file |
Setting a file path to save a process ID | p | pid-file |
Setting a file path to save a license key | k | license |
The stop command | q | quit |
Check System Information
Description | Short Name | Option Name |
---|---|---|
Show system info | system-info | |
Run host benchmark | run-host-benchmark | |
Specify measurement categories on the benchmark | run-host-benchmark-categories |
Fetching User's Public Keys
Description | Short Name | Option Name |
---|---|---|
Fetch authorized_keys | auth-keys | |
Specify UID on fetching it | auth-keys-uid | |
Specify user name on fetching it | auth-keys-user | |
Specify user definition file path on fetching it | auth-keys-hcp-users | |
Specify ability of system auth (PAM) on fetching it | auth-keys-sys-auth-disabled | |
Speciry system auth (PAM) included always on fetching it | auth-keys-sys-auth-regardless-user-def | |
Disable supplemental groups on fetching it | auth-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 ...
--