The issue on my post has resolved after I modify my ExecStart to:
ExecStart=/bin/bash /mnt/elasticsearch-7.15.0/bin/systemd-entrypoint -p ${PID_DIR}/elasticsearch.pid --quiet
But I got another error:
-- Unit elasticsearch.service has begun starting up.
Sep 24 12:50:36 ag-rh1 bash[161367]: Exception in thread "main" java.nio.file.NoSuchFileException: /mnt/elasticsearch-7.15.0/jvm.options
Sep 24 12:50:36 ag-rh1 bash[161367]: at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92)
Sep 24 12:50:36 ag-rh1 bash[161367]: at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106)
Sep 24 12:50:36 ag-rh1 bash[161367]: at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
Sep 24 12:50:36 ag-rh1 bash[161367]: at java.base/sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:219)
Sep 24 12:50:36 ag-rh1 bash[161367]: at java.base/java.nio.file.Files.newByteChannel(Files.java:375)
Sep 24 12:50:36 ag-rh1 bash[161367]: at java.base/java.nio.file.Files.newByteChannel(Files.java:426)
Sep 24 12:50:36 ag-rh1 bash[161367]: at java.base/java.nio.file.spi.FileSystemProvider.newInputStream(FileSystemProvider.java:420)
Sep 24 12:50:36 ag-rh1 bash[161367]: at java.base/java.nio.file.Files.newInputStream(Files.java:160)
Sep 24 12:50:36 ag-rh1 bash[161367]: at org.elasticsearch.tools.launchers.JvmOptionsParser.readJvmOptionsFiles(JvmOptionsParser.java:168)
Sep 24 12:50:36 ag-rh1 bash[161367]: at org.elasticsearch.tools.launchers.JvmOptionsParser.jvmOptions(JvmOptionsParser.java:124)
Sep 24 12:50:36 ag-rh1 bash[161367]: at org.elasticsearch.tools.launchers.JvmOptionsParser.main(JvmOptionsParser.java:86)
Sep 24 12:50:36 ag-rh1 systemd[1]: elasticsearch.service: Main process exited, code=exited, status=1/FAILURE
Sep 24 12:50:36 ag-rh1 systemd[1]: elasticsearch.service: Failed with result 'exit-code'.
-- Subject: Unit failed
-- Defined-By: systemd
-- Support: https://access.redhat.com/support
Elasticsearch.log:
[2021-09-24T12:29:28,876][INFO ][o.e.n.Node ] [ag-rh1] initialized
[2021-09-24T12:29:28,877][INFO ][o.e.n.Node ] [ag-rh1] starting ...
[2021-09-24T12:29:28,954][INFO ][o.e.x.s.c.f.PersistentCache] [ag-rh1] persistent cache index loaded
[2021-09-24T12:29:29,305][INFO ][o.e.t.TransportService ] [ag-rh1] publish_address {127.0.0.1:9300}, bound_addresses {[::1]:9300}, {127.0.0.1:9300}
[2021-09-24T12:29:30,200][WARN ][o.e.b.BootstrapChecks ] [ag-rh1] the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
[2021-09-24T12:29:30,203][INFO ][o.e.c.c.Coordinator ] [ag-rh1] cluster UUID [8RiH8uunTJSOiu12370y0Q]
[2021-09-24T12:29:30,230][INFO ][o.e.c.c.ClusterBootstrapService] [ag-rh1] no discovery configuration found, will perform best-effort cluster bootstrapping after [3s] unless existing master is discovered
[2021-09-24T12:29:30,538][INFO ][o.e.c.s.MasterService ] [ag-rh1] elected-as-master ([1] nodes joined)[{ag-rh1}{ru_p1kc-QRykkphr6vhhKA}{-AI_55TVRZSDamRkYsoM1A}{127.0.0.1}{127.0.0.1:9300}{cdfhilmrstw} elect leader, _BECOME_MASTER_TASK_, _FINISH_ELECTION_], term: 2, version: 47, delta: master node changed {previous [], current [{ag-rh1}{ru_p1kc-QRykkphr6vhhKA}{-AI_55TVRZSDamRkYsoM1A}{127.0.0.1}{127.0.0.1:9300}{cdfhilmrstw}]}
[2021-09-24T12:29:30,883][INFO ][o.e.c.s.ClusterApplierService] [ag-rh1] master node changed {previous [], current [{ag-rh1}{ru_p1kc-QRykkphr6vhhKA}{-AI_55TVRZSDamRkYsoM1A}{127.0.0.1}{127.0.0.1:9300}{cdfhilmrstw}]}, term: 2, version: 47, reason: Publication{term=2, version=47}
[2021-09-24T12:29:31,295][INFO ][o.e.h.AbstractHttpServerTransport] [ag-rh1] publish_address {127.0.0.1:9200}, bound_addresses {[::1]:9200}, {127.0.0.1:9200}
[2021-09-24T12:29:31,296][INFO ][o.e.n.Node ] [ag-rh1] started
[2021-09-24T12:29:32,354][INFO ][o.e.l.LicenseService ] [ag-rh1] license [a0a29a4d-0021-4989-8a18-0ff52c181645] mode [basic] - valid
[2021-09-24T12:29:32,357][INFO ][o.e.x.s.s.SecurityStatusChangeListener] [ag-rh1] Active license is now [BASIC]; Security is disabled
[2021-09-24T12:29:32,358][WARN ][o.e.x.s.s.SecurityStatusChangeListener] [ag-rh1] Elasticsearch built-in security features are not enabled. Without authentication, your cluster could be accessible to anyone. See https://www.elastic.co/guide/en/elasticsearch/reference/7.15/security-minimal-setup.html to enable security.
[2021-09-24T12:29:32,383][INFO ][o.e.g.GatewayService ] [ag-rh1] recovered [1] indices into cluster_state
[2021-09-24T12:29:33,688][INFO ][o.e.i.g.GeoIpDownloader ] [ag-rh1] updating geoip databases
[2021-09-24T12:29:33,690][INFO ][o.e.i.g.GeoIpDownloader ] [ag-rh1] fetching geoip databases overview from [https://geoip.elastic.co/v1/database?elastic_geoip_service_tos=agree]
[2021-09-24T12:29:34,193][INFO ][o.e.c.r.a.AllocationService] [ag-rh1] Cluster health status changed from [RED] to [GREEN] (reason: [shards started [[.geoip_databases][0]]]).
[2021-09-24T12:29:34,565][INFO ][o.e.i.g.DatabaseRegistry ] [ag-rh1] downloading geoip database [GeoLite2-Country.mmdb] to [/tmp/elasticsearch-9100062167901577091/geoip-databases/ru_p1kc-QRykkphr6vhhKA/GeoLite2-Country.mmdb.tmp.gz]
[2021-09-24T12:29:34,567][INFO ][o.e.i.g.DatabaseRegistry ] [ag-rh1] downloading geoip database [GeoLite2-ASN.mmdb] to [/tmp/elasticsearch-9100062167901577091/geoip-databases/ru_p1kc-QRykkphr6vhhKA/GeoLite2-ASN.mmdb.tmp.gz]
[2021-09-24T12:29:34,567][INFO ][o.e.i.g.DatabaseRegistry ] [ag-rh1] downloading geoip database [GeoLite2-City.mmdb] to [/tmp/elasticsearch-9100062167901577091/geoip-databases/ru_p1kc-QRykkphr6vhhKA/GeoLite2-City.mmdb.tmp.gz]
[2021-09-24T12:29:34,906][INFO ][o.e.i.g.GeoIpDownloader ] [ag-rh1] updating geoip database [GeoLite2-ASN.mmdb]
[2021-09-24T12:29:35,912][INFO ][o.e.i.g.DatabaseRegistry ] [ag-rh1] successfully reloaded changed geoip database file [/tmp/elasticsearch-9100062167901577091/geoip-databases/ru_p1kc-QRykkphr6vhhKA/GeoLite2-Country.mmdb]
[2021-09-24T12:29:35,920][INFO ][o.e.i.g.DatabaseRegistry ] [ag-rh1] successfully reloaded changed geoip database file [/tmp/elasticsearch-9100062167901577091/geoip-databases/ru_p1kc-QRykkphr6vhhKA/GeoLite2-ASN.mmdb]
[2021-09-24T12:29:39,514][INFO ][o.e.i.g.DatabaseRegistry ] [ag-rh1] successfully reloaded changed geoip database file [/tmp/elasticsearch-9100062167901577091/geoip-databases/ru_p1kc-QRykkphr6vhhKA/GeoLite2-City.mmdb]
[2021-09-24T12:29:40,213][INFO ][o.e.i.g.DatabaseRegistry ] [ag-rh1] downloading geoip database [GeoLite2-ASN.mmdb] to [/tmp/elasticsearch-9100062167901577091/geoip-databases/ru_p1kc-QRykkphr6vhhKA/GeoLite2-ASN.mmdb.tmp.gz]
[2021-09-24T12:29:40,331][INFO ][o.e.i.g.GeoIpDownloader ] [ag-rh1] updated geoip database [GeoLite2-ASN.mmdb]
[2021-09-24T12:29:40,387][INFO ][o.e.i.g.GeoIpDownloader ] [ag-rh1] updating geoip database [GeoLite2-City.mmdb]
[2021-09-24T12:29:40,679][INFO ][o.e.i.g.DatabaseReaderLazyLoader] [ag-rh1] evicted [0] entries from cache after reloading database [/tmp/elasticsearch-9100062167901577091/geoip-databases/ru_p1kc-QRykkphr6vhhKA/GeoLite2-ASN.mmdb]
[2021-09-24T12:29:40,680][INFO ][o.e.i.g.DatabaseRegistry ] [ag-rh1] successfully reloaded changed geoip database file [/tmp/elasticsearch-9100062167901577091/geoip-databases/ru_p1kc-QRykkphr6vhhKA/GeoLite2-ASN.mmdb]
[2021-09-24T12:29:47,703][INFO ][o.e.i.g.DatabaseRegistry ] [ag-rh1] downloading geoip database [GeoLite2-City.mmdb] to [/tmp/elasticsearch-9100062167901577091/geoip-databases/ru_p1kc-QRykkphr6vhhKA/GeoLite2-City.mmdb.tmp.gz]
[2021-09-24T12:29:47,778][INFO ][o.e.i.g.GeoIpDownloader ] [ag-rh1] updated geoip database [GeoLite2-City.mmdb]
[2021-09-24T12:29:47,780][INFO ][o.e.i.g.GeoIpDownloader ] [ag-rh1] updating geoip database [GeoLite2-Country.mmdb]
[2021-09-24T12:29:49,667][INFO ][o.e.i.g.DatabaseRegistry ] [ag-rh1] downloading geoip database [GeoLite2-Country.mmdb] to [/tmp/elasticsearch-9100062167901577091/geoip-databases/ru_p1kc-QRykkphr6vhhKA/GeoLite2-Country.mmdb.tmp.gz]
[2021-09-24T12:29:49,723][INFO ][o.e.i.g.GeoIpDownloader ] [ag-rh1] updated geoip database [GeoLite2-Country.mmdb]
[2021-09-24T12:29:50,012][INFO ][o.e.i.g.DatabaseReaderLazyLoader] [ag-rh1] evicted [0] entries from cache after reloading database [/tmp/elasticsearch-9100062167901577091/geoip-databases/ru_p1kc-QRykkphr6vhhKA/GeoLite2-Country.mmdb]
[2021-09-24T12:29:50,013][INFO ][o.e.i.g.DatabaseRegistry ] [ag-rh1] successfully reloaded changed geoip database file [/tmp/elasticsearch-9100062167901577091/geoip-databases/ru_p1kc-QRykkphr6vhhKA/GeoLite2-Country.mmdb]
[2021-09-24T12:29:51,207][INFO ][o.e.i.g.DatabaseReaderLazyLoader] [ag-rh1] evicted [0] entries from cache after reloading database [/tmp/elasticsearch-9100062167901577091/geoip-databases/ru_p1kc-QRykkphr6vhhKA/GeoLite2-City.mmdb]
[2021-09-24T12:29:51,207][INFO ][o.e.i.g.DatabaseRegistry ] [ag-rh1] successfully reloaded changed geoip database file [/tmp/elasticsearch-9100062167901577091/geoip-databases/ru_p1kc-QRykkphr6vhhKA/GeoLite2-City.mmdb]
[2021-09-24T12:49:31,827][INFO ][o.e.n.Node ] [ag-rh1] stopping ...
[2021-09-24T12:49:31,839][INFO ][o.e.x.w.WatcherService ] [ag-rh1] stopping watch service, reason [shutdown initiated]
[2021-09-24T12:49:31,845][INFO ][o.e.x.w.WatcherLifeCycleService] [ag-rh1] watcher has stopped and shutdown
[2021-09-24T12:49:31,864][INFO ][o.e.x.m.p.l.CppLogMessageHandler] [ag-rh1] [controller/161098] [Main.cc@174] ML controller exiting
[2021-09-24T12:49:31,869][INFO ][o.e.x.m.p.NativeController] [ag-rh1] Native controller process has stopped - no new native processes can be started
[2021-09-24T12:49:32,560][INFO ][o.e.n.Node ] [ag-rh1] stopped
[2021-09-24T12:49:32,560][INFO ][o.e.n.Node ] [ag-rh1] closing ...
[2021-09-24T12:49:32,618][INFO ][o.e.i.g.DatabaseReaderLazyLoader] [ag-rh1] evicted [0] entries from cache after reloading database [/tmp/elasticsearch-9100062167901577091/geoip-databases/ru_p1kc-QRykkphr6vhhKA/GeoLite2-Country.mmdb]
[2021-09-24T12:49:32,618][INFO ][o.e.i.g.DatabaseReaderLazyLoader] [ag-rh1] evicted [0] entries from cache after reloading database [/tmp/elasticsearch-9100062167901577091/geoip-databases/ru_p1kc-QRykkphr6vhhKA/GeoLite2-ASN.mmdb]
[2021-09-24T12:49:32,618][INFO ][o.e.i.g.DatabaseReaderLazyLoader] [ag-rh1] evicted [0] entries from cache after reloading database [/tmp/elasticsearch-9100062167901577091/geoip-databases/ru_p1kc-QRykkphr6vhhKA/GeoLite2-City.mmdb]
[2021-09-24T12:49:32,620][INFO ][o.e.n.Node ] [ag-rh1] closed
FYI, It run normally if i run using ./bin/elasticsearch -d -p pid