linux - 通过 Chef 在 Amazon Linux 上安装 Zabbix Agent - Agent Starting and Stopping Got signal [signal :15(SIGTERM)reason:0]. Exiting

标签 linux chef-infra amazon zabbix

    Starting Zabbix Agent [ip-XXX-XX-XX-XX]. Zabbix 3.2.3 (revision 64610).
    **** Enabled features ****
    IPv6 support: NO
    TLS support: NO
    **************************
    using configuration file: /usr/local/etc/zabbix_agentd.conf
    agent #0 started [main process]
    agent #4 started [listener #3]
    agent #1 started [collector]
    agent #3 started [listener #2]
    agent #2 started [listener #1]
    Got signal [signal:15(SIGTERM),sender_pid:10271,sender_uid:0,reason:0]. Exiting …
    Got signal [signal:15(SIGTERM),sender_pid:10271,sender_uid:0,reason:0]. Exiting …
    Got signal [signal:15(SIGTERM),sender_pid:10271,sender_uid:0,reason:0]. Exiting …
    One child process died (PID:9908,exitcode/signal:1). Exiting …
    Got signal [signal:15(SIGTERM),sender_pid:10271,sender_uid:0,reason:0]. Exiting …
    Zabbix Agent stopped. Zabbix 3.2.3 (revision 64610).


**Detailed Zabbix log with Log Level 4:-** 


 Starting Zabbix Agent [ip-xxx.xx.xx.xx]. Zabbix 3.2.3                                                                                                              (revision 64610).
**** Enabled features ****
IPv6 support:           NO
TLS support:            NO
**************************
using configuration file: /usr/local/etc/zabbix_agent                                                                                                             d.conf
In zbx_load_modules()
End of zbx_load_modules():SUCCEED
In init_collector_data()
In zbx_dshm_create() proj_id:112 size:0
End of zbx_dshm_create():SUCCEED shmid:-1
End of init_collector_data()
agent #0 started [main process]
agent #1 started [collector]
agent #3 started [listener #2]
__zbx_zbx_setproctitle() title:'listener #2 [waiting                                                                                                              for connection]'
agent #2 started [listener #1]
  In init_cpu_collector()
  __zbx_zbx_setproctitle() title:'listener #1 [waiting                                                                                                              for connection]'
  End of init_cpu_collector():SUCCEED
  __zbx_zbx_setproctitle() title:'collector [processing                                                                                                              data]'
  In update_cpustats()
  End of update_cpustats()
  __zbx_zbx_setproctitle() title:'collector [idle 1 sec                                                                                                             ]'
  agent #4 started [listener #3]
  __zbx_zbx_setproctitle() title:'listener #3 [waiting                                                                                                              for connection]'
  __zbx_zbx_setproctitle() title:'collector [processing                                                                                                              data]'
  In update_cpustats()
  End of update_cpustats()
  __zbx_zbx_setproctitle() title:'collector [idle 1 sec                                                                                                             ]'
  __zbx_zbx_setproctitle() title:'collector [processing                                                                                                              data]'

  In update_cpustats()
  End of update_cpustats()
  __zbx_zbx_setproctitle() title:'collector [idle 1 sec                                                                                                             ]'
  __zbx_zbx_setproctitle() title:'collector [processing                                                                                                              data]'
  In update_cpustats()
  End of update_cpustats()
  __zbx_zbx_setproctitle() title:'collector [idle 1 sec                                                                                                             ]'
  Got signal [signal:15(SIGTERM),sender_pid:10231,sende                                                                                                             r_uid:0,reason:0]. Exiting ...
  zbx_on_exit() called
  Got signal [signal:15(SIGTERM),sender_pid:10231,sende                                                                                                             r_uid:0,reason:0]. Exiting ...
  Got signal [signal:15(SIGTERM),sender_pid:10231,sende                                                                                                             r_uid:0,reason:0]. Exiting ...
  Got signal [signal:15(SIGTERM),sender_pid:10231,sende                                                                                                             r_uid:0,reason:0]. Exiting ...
  Got signal [signal:15(SIGTERM),sender_pid:10231,sende                                                                                                             r_uid:0,reason:0]. Exiting ...
  In zbx_dshm_destroy() shmid:-1
  End of zbx_dshm_destroy():SUCCEED
  In zbx_unload_modules()
  End of zbx_unload_modules()
  Zabbix Agent stopped. Zabbix 3.2.3 (revision 64610).

Chef 日志

 Synchronizing Cookbooks:
   - s3_file (2.5.1)
   - zabbix (0.1.1)
 Installing Cookbook Gems:
 Compiling Cookbooks...
 Converging 7 resources
 Recipe: zabbix::aml
   * yum_package[gcc] action install (up to date)
   * remote_file[/home/zabbix-3.2.3.tar.gz] action create
     - create new file /home/zabbix-3.2.3.tar.gz
     - update content in file /home/zabbix-3.2.3.tar.gz from none to e6dba7
     (file sizes exceed 10000000 bytes, diff output suppressed)
     - change mode from '' to '0755'
     - change owner from '' to 'root'
     - change group from '' to 'root'
   * bash[agent-install] action run
     - execute "bash"  "/tmp/chef-script20170125-2651-klp1so"
   * directory[/etc/zabbix] action create
     - create new directory /etc/zabbix
     - change mode from '' to '0755'
     - change owner from '' to 'zabbix'
     - change group from '' to 'zabbix'
   * template[/usr/local/etc/zabbix_agentd.conf] action create
     - update content in file /usr/local/etc/zabbix_agentd.conf from 2fefc4 to 10bb5e
     --- /usr/local/etc/zabbix_agentd.conf    2017-01-25 00:41:40.469538172 +0000
     +++ /usr/local/etc/.chef-zabbix_agentd20170125-2651-1p0i3vw.conf 2017-01-25 00:41:50.917553880 +0000
     @@ -1,77 +1,78 @@
     +
      # This is a configuration file for Zabbix agent daemon (Unix)
      # To get more information about Zabbix, visit http://www.zabbix.com


      ### Option: PidFile
     -#       Name of PID file.
     +#       Name of PID file.
      #
      # Mandatory: no
      # Default:
     -# PidFile=/tmp/zabbix_agentd.pid
     +PidFile=/etc/zabbix/zabbix_agentd.pid

      ### Option: LogType
     -#       Specifies where log messages are written to:
     -#               system  - syslog
     -#               file    - file specified with LogFile parameter
     -#               console - standard output
     +#       Specifies where log messages are written to:
     +#               system  - syslog
     +#               file    - file specified with LogFile parameter
     +#               console - standard output
      #
      # Mandatory: no
      # Default:
      # LogType=file

      ### Option: LogFile
     -#       Log file name for LogType 'file' parameter.
     +#       Log file name for LogType 'file' parameter.
      #
      # Mandatory: no
      # Default:
      # LogFile=

     -LogFile=/tmp/zabbix_agentd.log
     +LogFile=/etc/zabbix/zabbix_agentd.log

      ### Option: LogFileSize
     -#       Maximum size of log file in MB.
     -#       0 - disable automatic log rotation.
     +#       Maximum size of log file in MB.
     +#       0 - disable automatic log rotation.
      #
      # Mandatory: no
      # Range: 0-1024
      # Default:
     -# LogFileSize=1
     +#LogFileSize=1

      ### Option: DebugLevel
     -#       Specifies debug level:
     -#       0 - basic information about starting and stopping of Zabbix processes
     -#       1 - critical information
     -#       2 - error information
     -#       3 - warnings
     -#       4 - for debugging (produces lots of information)
     -#       5 - extended debugging (produces even more information)
     +#       Specifies debug level:
     +#       0 - basic information about starting and stopping of Zabbix processes
     +#       1 - critical information
     +#       2 - error information
     +#       3 - warnings
     +#       4 - for debugging (produces lots of information)
     +#       5 - extended debugging (produces even more information)
      #
      # Mandatory: no
      # Range: 0-5
      # Default:
     -# DebugLevel=3
     +# DebugLevel=4

      ### Option: SourceIP
     -#       Source IP address for outgoing connections.
     +#       Source IP address for outgoing connections.
      #
      # Mandatory: no
      # Default:
      # SourceIP=

      ### Option: EnableRemoteCommands
     -#       Whether remote commands from Zabbix server are allowed.
     -#       0 - not allowed
     -#       1 - allowed
     +#       Whether remote commands from Zabbix server are allowed.
     +#       0 - not allowed
     +#       1 - allowed
      #
      # Mandatory: no
      # Default:
      # EnableRemoteCommands=0

      ### Option: LogRemoteCommands
     -#       Enable logging of executed shell commands as warnings.
     -#       0 - disabled
     -#       1 - enabled
     +#       Enable logging of executed shell commands as warnings.
     +#       0 - disabled
     +#       1 - enabled
      #
      # Mandatory: no
      # Default:
     @@ -80,35 +81,35 @@
      ##### Passive checks related

      ### Option: Server
     -#       List of comma delimited IP addresses (or hostnames) of Zabbix servers.
     -#       Incoming connections will be accepted only from the hosts listed here.
     -#       If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally.
     +#       List of comma delimited IP addresses (or hostnames) of Zabbix servers.
     +#       Incoming connections will be accepted only from the hosts listed here.
     +#       If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally.
      #
      # Mandatory: no
      # Default:
      # Server=

     -Server=127.0.0.1
     +Server=XXX.XXX.XXX.XX

      ### Option: ListenPort
     -#       Agent will listen on this port for connections from the server.
     +#       Agent will listen on this port for connections from the server.
      #
      # Mandatory: no
      # Range: 1024-32767
      # Default:
     -# ListenPort=10050
     + ListenPort=10050

      ### Option: ListenIP
     -#       List of comma delimited IP addresses that the agent should listen on.
     -#       First IP address is sent to Zabbix server if connecting to it to retrieve list of active checks.
     +#       List of comma delimited IP addresses that the agent should listen on.
     +#       First IP address is sent to Zabbix server if connecting to it to retrieve list of active checks.
      #
      # Mandatory: no
      # Default:
      # ListenIP=0.0.0.0

      ### Option: StartAgents
     -#       Number of pre-forked instances of zabbix_agentd that process passive checks.
     -#       If set to 0, disables passive checks and the agent will not listen on any TCP port.
     +#       Number of pre-forked instances of zabbix_agentd that process passive checks.
     +#       If set to 0, disables passive checks and the agent will not listen on any TCP port.
      #
      # Mandatory: no
      # Range: 0-100
     @@ -118,43 +119,43 @@
      ##### Active checks related

      ### Option: ServerActive
     -#       List of comma delimited IP:port (or hostname:port) pairs of Zabbix servers for active checks.
     -#       If port is not specified, default port is used.
     -#       IPv6 addresses must be enclosed in square brackets if port for that host is specified.
     -#       If port is not specified, square brackets for IPv6 addresses are optional.
     -#       If this parameter is not specified, active checks are disabled.
     -#       Example: ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12fc::1]
     +#       List of comma delimited IP:port (or hostname:port) pairs of Zabbix servers for active checks.
     +#       If port is not specified, default port is used.
     +#       IPv6 addresses must be enclosed in square brackets if port for that host is specified.
     +#       If port is not specified, square brackets for IPv6 addresses are optional.
     +#       If this parameter is not specified, active checks are disabled.
     +#       Example: ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12fc::1]
      #
      # Mandatory: no
      # Default:
      # ServerActive=

     -ServerActive=127.0.0.1
     +#ServerActive=127.0.0.1

      ### Option: Hostname
     -#       Unique, case sensitive hostname.
     -#       Required for active checks and must match hostname as configured on the server.
     -#       Value is acquired from HostnameItem if undefined.
     +#       Unique, case sensitive hostname.
     +#       Required for active checks and must match hostname as configured on the server.
     +#       Value is acquired from HostnameItem if undefined.
      #
      # Mandatory: no
      # Default:
      # Hostname=

     -Hostname=Zabbix server
     +#Hostname=system.hostname

      ### Option: HostnameItem
     -#       Item used for generating Hostname if it is undefined. Ignored if Hostname is defined.
     -#       Does not support UserParameters or aliases.
     +#       Item used for generating Hostname if it is undefined. Ignored if Hostname is defined.
     +#       Does not support UserParameters or aliases.
      #
      # Mandatory: no
      # Default:
      # HostnameItem=system.hostname

      ### Option: HostMetadata
     -#       Optional parameter that defines host metadata.
     -#       Host metadata is used at host auto-registration process.
     -#       An agent will issue an error and not start if the value is over limit of 255 characters.
     -#       If not defined, value will be acquired from HostMetadataItem.
     +#       Optional parameter that defines host metadata.
     +#       Host metadata is used at host auto-registration process.
     +#       An agent will issue an error and not start if the value is over limit of 255 characters.
     +#       If not defined, value will be acquired from HostMetadataItem.
      #
      # Mandatory: no
      # Range: 0-255 characters
     @@ -162,18 +163,18 @@
      # HostMetadata=

              +#       Host metadata is used at host auto-registration process.
             +#       the value returned by specified item is over limit of 255 characters.
     +#       This option is only used when HostMetadata is not defined.
      #
      # Mandatory: no
      # Default:
      # HostMetadataItem=

      ### Option: RefreshActiveChecks
    +#       How often list of active checks is refreshed, in seconds.
      #
      # Mandatory: no
      # Range: 60-3600
     @@ -181,7 +182,7 @@
      # RefreshActiveChecks=120

      ### Option: BufferSend
     -#       Do not keep data longer than N seconds in buffer.
     +#       Do not keep data longer than N seconds in buffer.
      #
      # Mandatory: no
      # Range: 1-3600
     @@ -189,8 +190,8 @@
      # BufferSend=5

      ### Option: BufferSize
     -#       Maximum number of values in a memory buffer. The agent will send
     -#       all collected data to Zabbix Server or Proxy if the buffer is full.
     +#       Maximum number of values in a memory buffer. The agent will send
     +#       all collected data to Zabbix Server or Proxy if the buffer is full.
      #
      # Mandatory: no
      # Range: 2-65535
     @@ -198,10 +199,10 @@
      # BufferSize=100

      ### Option: MaxLinesPerSecond
     -#       Maximum number of new lines the agent will send per second to Zabbix Server
     -#       or Proxy processing 'log' and 'logrt' active checks.
     -#       The provided value will be overridden by the parameter 'maxlines',
     -#       provided in 'log' or 'logrt' item keys.
     +#       Maximum number of new lines the agent will send per second to Zabbix Server
     +#       or Proxy processing 'log' and 'logrt' active checks.
     +#       The provided value will be overridden by the parameter 'maxlines',
     +#       provided in 'log' or 'logrt' item keys.
      #
      # Mandatory: no
      # Range: 1-1000
     @@ -211,20 +212,20 @@
      ############ ADVANCED PARAMETERS #################

      ### Option: Alias
     -#       Sets an alias for an item key. It can be used to substitute long and complex item key with a smaller and simpler one.
     -#       Multiple Alias parameters may be present. Multiple parameters with the same Alias key are not allowed.
     -#       Different Alias keys may reference the same item key.
     -#       For example, to retrieve the ID of user 'zabbix':
     -#       Alias=zabbix.userid:vfs.file.regexp[/etc/passwd,^zabbix:.:([0-9]+),,,,\1]
     -#       Now shorthand key zabbix.userid may be used to retrieve data.
     -#       Aliases can be used in HostMetadataItem but not in HostnameItem parameters.
     +#       Sets an alias for an item key. It can be used to substitute long and complex item key with a smaller and simpler one.
     +#       Multiple Alias parameters may be present. Multiple parameters with the same Alias key are not allowed.
     +#       Different Alias keys may reference the same item key.
     +#       For example, to retrieve the ID of user 'zabbix':
     +#       Alias=zabbix.userid:vfs.file.regexp[/etc/passwd,^zabbix:.:([0-9]+),,,,\1]
     +#       Now shorthand key zabbix.userid may be used to retrieve data.
     +#       Aliases can be used in HostMetadataItem but not in HostnameItem parameters.
      #
      # Mandatory: no
      # Range:
      # Default:

      ### Option: Timeout
     +#       Spend no more than Timeout seconds on processing
      #
      # Mandatory: no
      # Range: 1-30
     @@ -232,45 +233,45 @@
      # Timeout=3

      ### Option: AllowRoot
     -#       will try to switch to the user specified by the User configuration option instead.
     -#       Has no effect if started under a regular user.
     -#       0 - do not allow
     -#       1 - allow
     +#       Allow the agent to run as 'root'. If disabled and the agent is started by 'root', the agent
     +#       will try to switch to the user specified by the User configuration option instead.
     +#       Has no effect if started under a regular user.
     +#       0 - do not allow
     +#       1 - allow
      # Mandatory: no
      # Default:
     -# AllowRoot=0
     + AllowRoot=1
      ### Option: User
      # Mandatory: no
      # Default:
      # User=zabbix
     ### Option: Include
     -#       You may include individual files or all files in a directory in the configuration file.
     -#       Installing Zabbix will create include directory in /usr/local/etc, unless modified during the compile time.
     +#       You may include individual files or all files in a directory in the configuration file.
     +#       Installing Zabbix will create include directory in /usr/local/etc, unless modified during the compile time.
      #
      # Mandatory: no
      # Default:
      # Include=

      # Include=/usr/local/etc/zabbix_agentd.userparams.conf
     -# Include=/usr/local/etc/zabbix_agentd.conf.d/
     + Include=/usr/local/etc/zabbix_agentd.conf.d/
      # Include=/usr/local/etc/zabbix_agentd.conf.d/*.conf

      ####### USER-DEFINED MONITORED PARAMETERS #######

      ### Option: UnsafeUserParameters
     -#       Allow all characters to be passed in arguments to user-defined parameters.
     -#       The following characters are not allowed:
     -#       \ ' " ` * ? [ ] { } ~ $ ! & ; ( ) < > | # @
     -#       Additionally, newline characters are not allowed.
     -#       0 - do not allow
     -#       1 - allow
     +#       Allow all characters to be passed in arguments to user-defined parameters.
     +#       The following characters are not allowed:
     +#       \ ' " ` * ? [ ] { } ~ $ ! & ; ( ) < > | # @
     +#       Additionally, newline characters are not allowed.
     +#       0 - do not allow
     +#       1 - allow
      #
      # Mandatory: no
      # Range: 0-1
     @@ -278,9 +279,9 @@
      # UnsafeUserParameters=0

      ### Option: UserParameter
     -#       User-defined parameter to monitor. There can be several user-defined parameters.
     -#       Format: UserParameter=<key>,<shell command>
     -#       See 'zabbix_agentd' directory for examples.
     +#       User-defined parameter to monitor. There can be several user-defined parameters.
     +#       Format: UserParameter=<key>,<shell command>
     +#       See 'zabbix_agentd' directory for examples.
      #
      # Mandatory: no
      # Default:
     @@ -289,18 +290,18 @@
      ####### LOADABLE MODULES #######

      ### Option: LoadModulePath
     -#       Full path to location of agent modules.
     -#       Default depends on compilation options.
     +#       Full path to location of agent modules.
     +#       Default depends on compilation options.
      #
      # Mandatory: no
      # Default:
      # LoadModulePath=${libdir}/modules

      ### Option: LoadModule
     -#       Module to load at agent startup. Modules are used to extend functionality of the agent.
     -#       Format: LoadModule=<module.so>
     -#       The modules must be located in directory specified by LoadModulePath.
     -#       It is allowed to include multiple LoadModule parameters.
     +#       Module to load at agent startup. Modules are used to extend functionality of the agent.
     +#       Format: LoadModule=<module.so>
     +#       The modules must be located in directory specified by LoadModulePath.
     +#       It is allowed to include multiple LoadModule parameters.
      #
      # Mandatory: no
      # Default:
     @@ -309,37 +310,37 @@
      ####### TLS-RELATED PARAMETERS #######

      ### Option: TLSConnect
     -#       How the agent should connect to server or proxy. Used for active checks.
     -#       Only one value can be specified:
     -#               unencrypted - connect without encryption
     -#               psk         - connect using TLS and a pre-shared key
     -#               cert        - connect using TLS and a certificate
     +#       How the agent should connect to server or proxy. Used for active checks.
     +#       Only one value can be specified:
     +#               unencrypted - connect without encryption
     +#               psk         - connect using TLS and a pre-shared key
     +#               cert        - connect using TLS and a certificate
      #
      # Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
      # Default:
      # TLSConnect=unencrypted

      ### Option: TLSAccept
     -#       What incoming connections to accept.
     -#       Multiple values can be specified, separated by comma:
     -#               unencrypted - accept connections without encryption
     -#               psk         - accept connections secured with TLS and a pre-shared key
     -#               cert        - accept connections secured with TLS and a certificate
     +#       What incoming connections to accept.
     +#       Multiple values can be specified, separated by comma:
     +#               unencrypted - accept connections without encryption
     +#               psk         - accept connections secured with TLS and a pre-shared key
     +#               cert        - accept connections secured with TLS and a certificate
      #
      # Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
      # Default:
      # TLSAccept=unencrypted

      ### Option: TLSCAFile
     -#       Full pathname of a file containing the top-level CA(s) certificates for
     -#       peer certificate verification.
     +#       Full pathname of a file containing the top-level CA(s) certificates for
     +#       peer certificate verification.
      #
      # Mandatory: no
      # Default:
      # TLSCAFile=

      ### Option: TLSCRLFile
     -#       Full pathname of a file containing revoked certificates.
     +#       Full pathname of a file containing revoked certificates.
      #
      # Mandatory: no
      # Default:
     @@ -360,30 +361,31 @@
      # TLSServerCertSubject=

      ### Option: TLSCertFile
     -#       Full pathname of a file containing the agent certificate or certificate chain.
     +#       Full pathname of a file containing the agent certificate or certificate chain.
      #
      # Mandatory: no
      # Default:
      # TLSCertFile=

      ### Option: TLSKeyFile
     -#       Full pathname of a file containing the agent private key.
     +#       Full pathname of a file containing the agent private key.
      #
      # Mandatory: no
      # Default:
      # TLSKeyFile=

      ### Option: TLSPSKIdentity
     -#       Unique, case sensitive string used to identify the pre-shared key.
     +#       Unique, case sensitive string used to identify the pre-shared key.
      #
      # Mandatory: no
      # Default:
      # TLSPSKIdentity=

      ### Option: TLSPSKFile
     -#       Full pathname of a file containing the pre-shared key.
     +#       Full pathname of a file containing the pre-shared key.
      #
      # Mandatory: no
      # Default:
      # TLSPSKFile=
     +
     - change mode from '0644' to '0755'
     - change owner from 'root' to 'zabbix'
     - change group from 'root' to 'zabbix'
   * template[/etc/init.d/zabbix-agent] action create
     - create new file /etc/init.d/zabbix-agent
     - change mode from '' to '0755'
     - change owner from '' to 'root'
     - change group from '' to 'root'
   * bash[agent] action run
     - execute "bash"  "/tmp/chef-script20170125-2651-jd9ecj"

 Running handlers:
 Running handlers complete
 Chef Client finished, 6/7 resources updated in 01 minutes 10 seconds

我正在尝试通过 Chef 在 AML 上安装 Zabbix Agent,Agent 正在启动,但它也在 Chef 运行期间停止。我可以通过登录亚马逊机器而不是通过 Chef 成功启动代理。上面给出了日志文件。由于字符限制,我从 Chef 日志中删除了 init.d 脚本。有什么建议 ?

最佳答案

我的脚本正在创建 EC2 实例的基础 AMI,这使 zabbix 代理停止。我能够将 zabbix-agent 添加到 chkconfig 并解决问题。

谢谢!

关于linux - 通过 Chef 在 Amazon Linux 上安装 Zabbix Agent - Agent Starting and Stopping Got signal [signal :15(SIGTERM)reason:0]. Exiting,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41839103/

相关文章:

php - 通路不适用于 pdftk

powershell - 使用Chef安装.NET Framework +升级Powershell?

chef-infra - ERB 模板中的 Chef 换行符

ruby - Chef - Chef::Resource::Application 中的 NoMethodError

amazon-web-services - 有没有一种方法可以真实地建模或估计 AWS 使用情况?

linux - 进程的显卡内存和虚拟地址空间

linux - 安装 vagrant 时出错 - Sudo apt-get install Vagrant 返回错误 : packages have unmet dependencies - Ubuntu 19. 04

amazon - 如何将多个产品发送到亚马逊商城?

ubuntu - 亚马逊网络服务和 EC2 和 Ubuntu 10.04

linux - 使用 sudo 保留内联变量