微信公众号开发前配置
不记下来,难免会忘记~
不记下来,难免会忘记~
Install 'net-tools' and 'wget' packages on CentOS 7:
yum install net-tools wget
https://openvpn.net/index.php/access-server/download-openvpn-as-sw.html
Type wget followed by the pasted URL:
wget <paste copied url>
Install downloaded package on RedHat/CentOS/Fedora system:
rpm -Uvh openvpn-as-2.1.12-CentOS7.x86_64.rpm
The installation process should then commence and finish. The output may look like this:
The Access Server has been successfully installed in /usr/local/openvpn_as
Configuration log file has been written to /usr/local/openvpn_as/init.log
Please enter "passwd openvpn
" to set the initial administrative password, then login as "openvpn" to continue configuration here: https://192.168.70.222:943/admin
To reconfigure manually, use the /usr/local/openvpn_as/bin/ovpn-init
tool. Access Server web UIs are available here: Admin UI: https://192.168.47.222:943/admin
Client UI: https://192.168.47.222:943/
The Access Server tries to adapt itself to the network configuration it finds. But if you have a complex network setup you may need to run the ovpn-init tool to reconfigure to listen to another network interface. It's worth mentioning that the ovpn-init tool can be used to wipe all OpenVPN Access Server configuration with the --force option in case you make a mistake during initial setup. Don't use the --force option on an existing installation unless you can live with losing all configuration and certificates and want to start over. Also, the program will ask for a license key, but you do not have to enter one. If no valid license key is found it will just assume a demonstration mode where all functions work but you're limited to 2 simultaneous VPN tunnel connections.
Finishing configuration and using the product
Once the program is installed it will automatically configure itself with some standard settings. The installation process will also tell you where to find the client web service, which is the web based GUI that you can use to log on and connect to the Access Server, and where to find the admin web service, which is where you can log on as an administrative user and manage the configuration, certificate, users, etcetera, in the web based GUI. Usually the client UI is at the address of your server, for example https://192.168.70.222/
. The admin UI is usually at the /admin/ address, for example https://192.168.70.222/admin/
. Please note that the web services by default actually run on port TCP 943, so you can visit them at https://192.168.70.222:943/
and https://192.168.70.222:943/
as well. The OpenVPN TCP daemon that runs on TCP port 443 redirects incoming browser requests so that it is slightly easier for users to open the web interface.
Initially a single administrative user is added to the system. But it has no password set and therefore cannot be used yet. To use it a password must be set first:
passwd openvpn
You can now point your web browser at the admin UI web interface. Because the Access Server comes with a self-signed SSL certificate to begin with, you will receive a warning in the browser like "Invalid certificate" or "Cannot verify identity of the server". You will have to confirm that you wish to continue to the web interface. You will then see the login screen and you can then enter the username openvpn and the password you have just set with the "passwd openvpn
" command.
在平常写项目的时候,不可避免的会用到时间计算。
如果只是简单的计算的话,只需要将时间字符串转换为时间戳然后对比即可。
但是如果需要计算具体的年月日时分秒的话,可以用日期对象来计算。
// 时间1
$date1 = strtotime('2018-10-01'); // 1538352000
// 时间2
$date2 = strtotime('2018-11-01'); // 1541030400
// 时间2 比 时间1多多少秒
$diff = $date2 - $date1; // 2678400
http://php.net/manual/zh/datetime.diff.php
// 出生日期
$birthday = new \DateTime('1996-10-11');
// 当前时间
$now = new \DateTime();
// 计算出生日期和当前时间的时间查
$interval = $birthday->diff($now);
var_dump($interval);
打印出来是以下信息
object(DateInterval)[18]
public 'y' => int 21 // 年
public 'm' => int 6 // 月
public 'd' => int 0 // 日
public 'h' => int 17 // 时
public 'i' => int 16 // 分
public 's' => int 2 // 秒
public 'weekday' => int 0
public 'weekday_behavior' => int 0
public 'first_last_day_of' => int 0
public 'invert' => int 0
public 'days' => int 7852 // 天数
public 'special_type' => int 0
public 'special_amount' => int 0
public 'have_weekday_relative' => int 0
public 'have_special_relative' => int 0
看上面的打印信息,就能看到很具体的时间了,而不用另外去计算
也就是说,生日至今,年龄是:21岁6个月17小时16分2秒
,7852
天
系统名称后面带个N的,代表移除了某些功能,例如:Windows Media Player, Groove Music, Movies & TV, Voice Recorder, Skype等
https://support.microsoft.com/en-us/help/3010081/media-feature-pack-for-windows-10-n-and-windows-10-kn-editions
名词 | 解释 |
---|---|
Datacenter | 数据中心版 |
Standard | 标准版 |
Professional | 专业版 |
Enterprise | 企业版 |
Education | 教育版 |
LTSB | 长期服务 |
Workstation | 工作站 |
操作系统版本 | KMS安装密钥 |
---|---|
Windows Server Datacenter | 6Y6KB-N82V8-D8CQV-23MJW-BWTG6 |
Windows Server Standard | DPCNP-XQFKJ-BJF7R-FRC8D-GF6G4 |
操作系统版本 | 密钥 |
---|---|
Windows Server 2016 Datacenter(数据中心版) | CB7KF-BWN84-R7R2Y-793K2-8XDDG |
Windows Server 2016 Standard(标准版) | WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY |
Windows Server 2016 Essentials(基础版) | JCKRF-N37P4-C2D82-9YXRT-4M63B |
操作系统版本 | KMS安装密钥 |
---|---|
Windows 10 Professional Workstation(工作站专业版) | NRG8B-VKK3Q-CXVCJ-9G2XF-6Q84J |
Windows 10 Professional Workstation N | 9FNHH-K3HBT-3W4TD-6383H-6XYWF |
操作系统版本 | 密钥 |
---|---|
Windows 10 Professional | W269N-WFGWX-YVC9B-4J6C9-T83GX |
Windows 10 Professional N | MH37W-N47XK-V7XM9-C7227-GCQG9 |
Windows 10 Enterprise | NPPR9-FWDCX-D2C8J-H872K-2YT43 |
Windows 10 Enterprise N | DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4 |
Windows 10 Education | NW6C2-QMPVW-D7KKK-3GKT6-VCFB2 |
Windows 10 Education N | 2WH4N-8QGBV-H22JP-CT43Q-MDWWJ |
Windows 10 Enterprise 2015 LTSB | WNMTR-4C88C-JK8YV-HQ7T2-76DF9 |
Windows 10 Enterprise 2015 LTSB N | 2F77B-TNFGY-69QQF-B8YKP-D69TJ |
Windows 10 Enterprise 2016 LTSB | DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ |
Windows 10 Enterprise 2016 LTSB N | QFFDN-GRT3P-VKWWX-X7T3R-8B639 |
操作系统版本 | 密钥 |
---|---|
Windows 8.1 Professional | GCRJD-8NW9H-F2CDX-CCM8D-9D6T9 |
Windows 8.1 Professional N | HMCNV-VVBFX-7HMBH-CTY9B-B4FXY |
Windows 8.1 Enterprise | MHF9N-XY6XB-WVXMC-BTDCT-MKKG7 |
Windows 8.1 Enterprise N | TT4HM-HN7YT-62K67-RGRQJ-JFFXW |
Windows Server 2012 R2 Server Standard | D2N9P-3P6X9-2R39C-7RTCD-MDVJX |
Windows Server 2012 R2 Datacenter | W3GGN-FT8W3-Y4M27-J84CP-Q3VJ9 |
Windows Server 2012 R2 Essentials | KNC87-3J2TX-XB4WP-VCPJV-M4FWM |
操作系统版本 | 密钥 |
---|---|
Windows 8 Professional | NG4HW-VH26C-733KW-K6F98-J8CK4 |
Windows 8 Professional N | XCVCF-2NXM9-723PB-MHCB7-2RYQQ |
Windows 8 Enterprise | 32JNW-9KQ84-P47T8-D8GGY-CWCK7 |
Windows 8 Enterprise N | JMNMF-RHW7P-DMY6X-RF3DR-X2BQT |
Windows Server 2012 | BN3D2-R7TKB-3YPBD-8DRP2-27GG4 |
Windows Server 2012 N | 8N2M2-HWPGY-7PGT9-HGDD8-GVGGY |
Windows Server 2012 Single Language | 2WN2H-YGCQR-KFX6K-CD6TF-84YXQ |
Windows Server 2012 Country Specific | 4K36P-JN4VD-GDC6V-KDT89-DYFKP |
Windows Server 2012 Server Standard | XC9B7-NBPP2-83J2H-RHMBY-92BT4 |
Windows Server 2012 MultiPoint Standard | HM7DN-YVMH3-46JC3-XYTG7-CYQJJ |
Windows Server 2012 MultiPoint Premium | XNH6W-2V9GX-RGJ4K-Y8X6F-QGJ2G |
Windows Server 2012 Datacenter | 48HP8-DN98B-MYWDG-T2DCC-8W83P |
操作系统版本 | 密钥 |
---|---|
Windows 7 Professional | FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4 |
Windows 7 Professional N | MRPKT-YTG23-K7D7T-X2JMM-QY7MG |
Windows 7 Professional E | W82YF-2Q76Y-63HXB-FGJG9-GF7QX |
Windows 7 Enterprise | 33PXH-7Y6KF-2VJC9-XBBR8-HVTHH |
Windows 7 Enterprise N | YDRBP-3D83W-TY26F-D46B2-XCKRJ |
Windows 7 Enterprise E | C29WB-22CC8-VJ326-GHFJW-H9DH4 |
Windows Server 2008 R2 Web | 6TPJF-RBVHG-WBW2R-86QPH-6RTM4 |
Windows Server 2008 R2 HPC edition | TT8MH-CG224-D3D7Q-498W2-9QCTX |
Windows Server 2008 R2 Standard | YC6KT-GKW9T-YTKYR-T4X34-R7VHC |
Windows Server 2008 R2 Enterprise | 489J6-VHDMP-X63PK-3K798-CPX3Y |
Windows Server 2008 R2 Datacenter | 74YFP-3QFB3-KQT8W-PMXWJ-7M648 |
Windows Server 2008 R2 for Itanium-based Systems | GT63C-RJFQ3-4GMB6-BRFB9-CB83V |
操作系统版本 | 密钥 |
---|---|
Windows Vista Business | YFKBB-PQJJV-G996G-VWGXY-2V3X8 |
Windows Vista Business N | HMBQG-8H2RH-C77VX-27R82-VMQBT |
Windows Vista Enterprise | VKK3X-68KWM-X2YGT-QR4M6-4BWMV |
Windows Vista Enterprise N | VTC42-BM838-43QHV-84HX6-XJXKV |
Windows Web Server 2008 | WYR28-R7TFJ-3X2YQ-YCY4H-M249D |
Windows Server 2008 Standard | TM24T-X9RMF-VWXK6-X8JC9-BFGM2 |
Windows Server 2008 Standard without Hyper-V | W7VD6-7JFBR-RX26B-YKQ3Y-6FFFJ |
Windows Server 2008 Enterprise | YQGMW-MPWTJ-34KDK-48M3W-X4Q6V |
Windows Server 2008 Enterprise without Hyper-V | 39BXF-X8Q23-P2WWT-38T2F-G3FPG |
Windows Server 2008 HPC | RCTX3-KWVHP-BR6TB-RB6DM-6X7HP |
Windows Server 2008 Datacenter | 7M67G-PC374-GR742-YH8V4-TCBY3 |
Windows Server 2008 Datacenter without Hyper-V | 22XQ2-VRXRG-P8D42-K34TD-G3QQC |
Windows Server 2008 for Itanium-Based Systems | 4DWFP-JF3DJ-B7DTH-78FJB-PDRHK |
软件 | 密钥 |
---|---|
Office Professional Plus 2016 | XQNVK-8JYDB-WJ9W3-YJ8YR-WFG99 |
Office Standard 2016 | JNRGM-WHDWX-FJJG3-K47QV-DRTFM |
Project Professional 2016 | YG9NW-3K39V-2T3HJ-93F3Q-G83KT |
Project Standard 2016 | GNFHQ-F6YQM-KQDGJ-327XX-KQBVC |
Visio Professional 2016 | PD3PC-RHNGV-FXJ29-8JK7D-RJRJK |
Visio Standard 2016 | 7WHWN-4T7MP-G96JF-G33KR-W8GF4 |
Access 2016 | GNH9Y-D2J4T-FJHGG-QRVH7-QPFDW |
Excel 2016 | 9C2PK-NWTVB-JMPW8-BFT28-7FTBF |
OneNote 2016 | DR92N-9HTF2-97XKM-XW2WJ-XW3J6 |
Outlook 2016 | R69KK-NTPKF-7M3Q4-QYBHW-6MT9B |
PowerPoint 2016 | J7MQP-HNJ4Y-WJ7YM-PFYGF-BY6C6 |
Publisher 2016 | F47MM-N3XJP-TQXJ9-BP99D-8837K |
Skype for Business 2016 | 869NQ-FJ69K-466HW-QYCP2-DDBV6 |
Word 2016 | WXY84-JN2Q9-RBCCQ-3Q3J3-3PFJ6 |
软件 | 密钥 |
---|---|
Office 2013 Professional Plus | YC7DK-G2NP3-2QQC3-J6H88-GVGXT |
Office 2013 Standard | KBKQT-2NMXY-JJWGP-M62JB-92CD4 |
Project 2013 Professional | FN8TT-7WMH6-2D4X9-M337T-2342K |
Project 2013 Standard | 6NTH3-CW976-3G3Y2-JK3TX-8QHTT |
Visio 2013 Professional | C2FG9-N6J68-H8BTJ-BW3QX-RM3B3 |
Visio 2013 Standard | J484Y-4NKBF-W2HMG-DBMJC-PGWR7 |
Access 2013 | NG2JY-H4JBT-HQXYP-78QH9-4JM2D |
Excel 2013 | VGPNG-Y7HQW-9RHP7-TKPV3-BG7GB |
InfoPath 2013 | DKT8B-N7VXH-D963P-Q4PHY-F8894 |
Lync 2013 | 2MG3G-3BNTT-3MFW9-KDQW3-TCK7R |
OneNote 2013 | TGN6P-8MMBC-37P2F-XHXXK-P34VW |
Outlook 2013 | QPN8Q-BJBTJ-334K3-93TGY-2PMBT |
PowerPoint 2013 | 4NT99-8RJFH-Q2VDH-KYG2C-4RD4F |
Publisher 2013 | PN2WF-29XG2-T9HJ7-JQPJR-FCXK4 |
Word 2013 | 6Q7VD-NX8JD-WJ2VH-88V73-4GBJ7 |
软件 | 密钥 |
---|---|
Office Professional Plus 2010 | VYBBJ-TRJPB-QFQRF-QFT4D-H3GVB |
Office Standard 2010 | V7QKV-4XVVR-XYV4D-F7DFM-8R6BM |
Office Home and Business 2010 | D6QFG-VBYP2-XQHM7-J97RH-VVRCK |
Access 2010 | V7Y44-9T38C-R2VJK-666HK-T7DDX |
Excel 2010 | H62QG-HXVKF-PP4HP-66KMR-CW9BM |
SharePoint Workspace 2010 | QYYW6-QP4CB-MBV6G-HYMCJ-4T3J4 |
InfoPath 2010 | K96W8-67RPQ-62T9Y-J8FQJ-BT37T |
OneNote 2010 | Q4Y4M-RHWJM-PY37F-MTKWH-D3XHX |
Outlook 2010 | 7YDC2-CWM8M-RRTJC-8MDVC-X3DWQ |
PowerPoint 2010 | RC8FX-88JRY-3PF7C-X8P67-P4VTT |
Project Professional 2010 | YGX6F-PGV49-PGW3J-9BTGG-VHKC6 |
Project Standard 2010 | 4HP3K-88W3F-W2K3D-6677X-F9PGB |
Publisher 2010 | BFK7F-9MYHM-V68C7-DRQ66-83YTP |
Word 2010 | HVHB3-C6FV7-KQX9W-YQG79-CRY7T |
Visio Premium 2010 | D9DWC-HPYVV-JGF4P-BTWQB-WX8BJ |
Visio Professional 2010 | 7MCW8-VRQVK-G677T-PDJCM-Q8TCP |
Visio Standard 2010 | 767HD-QGMWX-8QTDB-9G3R2-KHFGJ |
Server/Windows:https://docs.microsoft.com/zh-cn/windows-server/get-started/kmsclientkeys
写程序的时候,难免需要用到自动任务,例如:超时订单自动取消。
刚开始我用crontab来实现,但发现会出问题:
最后找到了一个解决问题,就是使用Supervisor来运行任务,完美解决了以上问题,并且方便了任务管理。
以下内容都是参考官方教程来编写,并且在完善当中。
这里提供两种安装方法,分别是使用 easy_install
安装和使用 yum
安装
easy_install
安装1.安装supervisor
easy_install supervisor
2.生成配置文件
echo_supervisord_conf > /etc/supervisord.conf
3.生成supervisord.service服务文件
curl https://raw.githubusercontent.com/Supervisor/initscripts/master/centos-systemd-etcs > /lib/systemd/system/supervisord.service
4.修改supervisord.service文件权限
chmod +x /lib/systemd/system/supervisord.service
yum
安装yum install supervisor
Centos8系统可以使用dnf
包管理器来安装
dnf install supervisor
启用服务后,会跟随系统开机自启
systemctl enable supervisord
返回结果
Created symlink from /etc/systemd/system/multi-user.target.wants/supervisord.service to /usr/lib/systemd/system/supervisord.service.
禁用服务后,不会跟随系统开机自启
systemctl disable supervisord
也就是启动 supervisor
systemctl start supervisord
也就是查看 supervisor
运行状态
systemctl status supervisord
systemctl stop supervisord
systemctl start supervisord
/etc/supervisord.conf:
; supervisor 示例配置文件
;
; 有关配置文件的更多信息,请参阅:
; http://supervisord.org/configuration.html
;
; 提示:
; - Shell expansion ("~" or "$HOME") is not supported. Environment
; variables can be expanded using this syntax: "%(ENV_HOME)s".
; - Quotes around values are not supported, except in the case of
; the environment= options as shown below.
; - Comments must have a leading space: "a=b ;comment" not "a=b;comment".
; - Command will be truncated if it looks like a config file comment, e.g.
; "command=bash -c 'foo ; bar'" will truncate to "command=bash -c 'foo ".
[unix_http_server]
file=/tmp/supervisor.sock ; 套接字(socket)文件的路径
;chmod=0700 ; 套接字(socket)文件的权限 (default 0700)
;chown=nobody:nogroup ; 套接字(socket)文件的所有组和所有者
;username=user ; 用户名,在终端管理Supervisor时使用(默认没有用户名)
;password=123 ; 密码,在终端管理Supervisor时使用(默认没有密码)
;[inet_http_server] ; inet (TCP) 服务,用于通过web管理任务
;port=127.0.0.1:9001 ; 监听地址(IP地址:端口), *:port 表示监听所有IP
;username=user ; 用户名,在web管理Supervisor时使用(默认没有用户名)
;password=123 ; 密码,在web管理Supervisor时使用(默认没有密码)
[supervisord]
logfile=/tmp/supervisord.log ; 主日志文件; 默认 $CWD/supervisord.log
logfile_maxbytes=50MB ; max main logfile bytes b4 rotation; default 50MB
logfile_backups=10 ; # of main logfile backups; 0 means none, default 10
loglevel=info ; 日志等级,默认为:info. 其它选项: debug,warn,trace
pidfile=/tmp/supervisord.pid ; supervisord pidfile; default supervisord.pid
nodaemon=false ; start in foreground if true; default false
minfds=1024 ; min. avail startup file descriptors; default 1024
minprocs=200 ; min. avail process descriptors;default 200
;umask=022 ; process file creation umask; default 022
;user=chrism ; default is current user, required if root
;identifier=supervisor ; supervisord identifier, default is 'supervisor'
;directory=/tmp ; default is not to cd during start
;nocleanup=true ; don't clean up tempfiles at start; default false
;childlogdir=/tmp ; 'AUTO' child log dir, default $TEMP
;environment=KEY="value" ; key value pairs to add to environment
;strip_ansi=false ; strip ansi escape codes in logs; def. false
; The rpcinterface:supervisor section must remain in the config file for
; RPC (supervisorctl/web interface) to work. Additional interfaces may be
; added by defining them in separate [rpcinterface:x] sections.
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
; The supervisorctl section configures how supervisorctl will connect to
; supervisord. configure it match the settings in either the unix_http_server
; or inet_http_server section.
[supervisorctl]
serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL for a unix socket
;serverurl=http://127.0.0.1:9001 ; use an http:// url to specify an inet socket
;username=chris ; should be same as in [*_http_server] if set
;password=123 ; should be same as in [*_http_server] if set
;prompt=mysupervisor ; cmd line prompt (default "supervisor")
;history_file=~/.sc_history ; use readline history if available
; The sample program section below shows all possible program subsection values.
; Create one or more 'real' program: sections to be able to control them under
; supervisor.
;[program:theprogramname]
;command=/bin/cat ; 需要执行的命令(相对使用PATH,可以使用参数)
;process_name=%(program_name)s ; 进程名称表达式(默认:%(program_name)s)
;numprocs=1 ; 要启动的进程数(默认:1)
;directory=/tmp ; 工作目录,执行命令前,转到该目录(默认:无)
;umask=022 ; 进程权限掩码 (默认:无)
;priority=999 ; 优先级,正序 (默认:999)
;autostart=true ; 跟随supervisord自动启动 (默认:是)
;startsecs=1 ; 启动后运行x秒才算正常 (默认: 1)
;startretries=3 ; 启动失败最大重试次数 (默认: 3)
;autorestart=unexpected ; 什么情况下自动重启(true=是,false=否,unexpected=异常退出时才重启) (默认: unexpected)
;exitcodes=0,2 ; 'expected' exit codes used with autorestart (default 0,2)
;stopsignal=QUIT ; 终止进程信号 (默认: TERM)
;stopwaitsecs=10 ; b4 SIGKILL 最大等待时间(秒) (默认: 10)
;stopasgroup=false ; 向 UNIX 进程组发送停止信号 (默认: false)
;killasgroup=false ; SIGKILL the UNIX process group (def false)
;user=chrism ; 设置命令运行用户
;redirect_stderr=true ; 将 proc stderr 重定向至 stdout (默认: false)
;stdout_logfile=/a/path ; 终端日志保存文件(执行命令一般都会有内容信息返回),默认值:AUTO,其它选项:NONE
;stdout_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)
;stdout_logfile_backups=10 ; # of stdout logfile backups (0 means none, default 10)
;stdout_capture_maxbytes=1MB ; number of bytes in 'capturemode' (default 0)
;stdout_events_enabled=false ; emit events on stdout writes (default false)
;stderr_logfile=/a/path ; stderr log path, NONE for none; default AUTO
;stderr_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)
;stderr_logfile_backups=10 ; # of stderr logfile backups (0 means none, default 10)
;stderr_capture_maxbytes=1MB ; number of bytes in 'capturemode' (default 0)
;stderr_events_enabled=false ; emit events on stderr writes (default false)
;environment=A="1",B="2" ; process environment additions (def no adds)
;serverurl=AUTO ; override serverurl computation (childutils)
; The sample eventlistener section below shows all possible eventlistener
; subsection values. Create one or more 'real' eventlistener: sections to be
; able to handle event notifications sent by supervisord.
;[eventlistener:theeventlistenername]
;command=/bin/eventlistener ; the program (relative uses PATH, can take args)
;process_name=%(program_name)s ; process_name expr (default %(program_name)s)
;numprocs=1 ; number of processes copies to start (def 1)
;events=EVENT ; event notif. types to subscribe to (req'd)
;buffer_size=10 ; event buffer queue size (default 10)
;directory=/tmp ; directory to cwd to before exec (def no cwd)
;umask=022 ; umask for process (default None)
;priority=-1 ; the relative start priority (default -1)
;autostart=true ; start at supervisord start (default: true)
;startsecs=1 ; # of secs prog must stay up to be running (def. 1)
;startretries=3 ; max # of serial start failures when starting (default 3)
;autorestart=unexpected ; autorestart if exited after running (def: unexpected)
;exitcodes=0,2 ; 'expected' exit codes used with autorestart (default 0,2)
;stopsignal=QUIT ; signal used to kill process (default TERM)
;stopwaitsecs=10 ; max num secs to wait b4 SIGKILL (default 10)
;stopasgroup=false ; send stop signal to the UNIX process group (default false)
;killasgroup=false ; SIGKILL the UNIX process group (def false)
;user=chrism ; setuid to this UNIX account to run the program
;redirect_stderr=false ; redirect_stderr=true is not allowed for eventlisteners
;stdout_logfile=/a/path ; stdout log path, NONE for none; default AUTO
;stdout_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)
;stdout_logfile_backups=10 ; # of stdout logfile backups (0 means none, default 10)
;stdout_events_enabled=false ; emit events on stdout writes (default false)
;stderr_logfile=/a/path ; stderr log path, NONE for none; default AUTO
;stderr_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)
;stderr_logfile_backups=10 ; # of stderr logfile backups (0 means none, default 10)
;stderr_events_enabled=false ; emit events on stderr writes (default false)
;environment=A="1",B="2" ; process environment additions
;serverurl=AUTO ; override serverurl computation (childutils)
; The sample group section below shows all possible group values. Create one
; or more 'real' group: sections to create "heterogeneous" process groups.
;[group:thegroupname]
;programs=progname1,progname2 ; each refers to 'x' in [program:x] definitions
;priority=999 ; 相对启动优先级 (默认: 999)
; The [include] section can just contain the "files" setting. This
; setting can list multiple files (separated by whitespace or
; newlines). It can also contain wildcards. The filenames are
; interpreted as relative to this file. Included files *cannot*
; include files themselves.
;[include]
;files = relative/directory/*.ini
重启单个任务
supervisorctl restart 任务名
重启多个任务
supervisorctl restart 任务名1 任务名2 任务名3 任务名...
重启群组内的所有任务
supervisorctl restart 群组名:*
重启所有任务
supervisorctl restart all
启动单个任务
supervisorctl start 任务名
启动多个任务
supervisorctl start 任务名1 任务名2 任务名3 任务名...
启动群组内的所有任务
supervisorctl start 群组名:*
启动所有任务
supervisorctl start all
查看单个任务
supervisorctl status 任务名
查看多个任务
supervisorctl status 任务名1 任务名2 任务名3 任务名...
查看群组内的所有任务
supervisorctl status 群组名:*
查看所有任务
supervisorctl status all
停止单个任务
supervisorctl stop 任务名
停止多个任务
supervisorctl stop 任务名1 任务名2 任务名3 任务名...
停止群组内的所有任务
supervisorctl stop 群组名:*
停止所有任务
supervisorctl stop all
重新加载配置文件并重启所有任务
supervisorctl reload
重新加载配置文件并重启配置有变动的任务(适合只更新单个任务的配置,但又不想重启所有任务的情况)
supervisorctl reread
supervisorctl update
查看任务的实时执行情况(相当于直接在终端中执行,可以查看到实时的终端信息输出)
supervisorctl tail -f 任务名
查看最后100字节日志
supervisorctl tail -100 任务名
查看最后1600字节错误日志
supervisorctl tail 任务名 stderr
以前台模式连接到进程
supervisorctl fg 任务名