如何在CentOS 7上安装Oxwall
Oxwall是一个开源社交网络软件平台,可用于免费构建自定义社交网站(SNS)。在这篇文章中,
Supervisor是一个客户机/服务器系统,用于控制许多UNIX进程,更具体地说是与项目或客户相关的进程。例如,您可以使用管理程序来生成和监视Web应用程序中任意数量的工作队列。
该系统的组件为:
在本教程中,我们将安装最新版本的Supervisor,演示如何通过生成和管理程序supervisorctl
,以及配置Web界面来管理程序。
我们将通过easy_install
python的setuptools的功能安装超级用户。
首先,更新您的本地软件包列表,然后安装python setuptools
。
sudo apt-get update && sudo apt-get install python-setuptools
现在我们可以安装主管了。
sudo easy_install supervisor
安装完成后,我们必须生成我们的配置文件。创建一个名为supervisor
inside 的文件夹/etc
。
sudo mkdir /etc/supervisor
然后执行以下操作。
echo_supervisord_conf > /etc/supervisor/supervisord.conf
如果您未使用该root
用户登录,则可能会收到Permission denied
错误消息(即使使用也会出现此错误sudo
)。这是由于重定向。要解决此问题,请以root用户身份登录。
sudo su
然后,您可以再次运行该命令。
echo_supervisord_conf > /etc/supervisor/supervisord.conf
现在,您可以root
将exit
命令留给用户。该echo_supervisord_conf
命令由我们的主管安装提供。
打开/etc/supervisor/supervisord.conf
文件并检查其内容。您会注意到,此配置文件遵循INI
语法,并且按部分划分(如中的括号所示[section-name]
)。
要添加要由主管管理的程序,我们只需要创建适当的[program]
部分即可。但是,为避免每次需要添加(或更改)程序时都将主配置文件弄乱,我们将使用这一[include]
部分。找到本节,取消注释,然后对其进行编辑,使其类似于以下内容。
[include]
files=conf.d/*.conf
现在,对于我们要添加的每个程序,我们将.ini
在/etc/supervisor/conf.d/
目录中创建一个文件。让我们创建这个文件夹。
sudo mkdir /etc/supervisor/conf.d
如前所述,主管由服务器和与其连接的客户端组成。为了能够管理和控制程序,我们需要启动服务器。为此,我们将在中注册主管服务器systemd
,以便可以在系统启动时启动该服务器。
为此,请supervisord.service
在/etc/systemd/system
目录中创建一个名为的文件。
sudo touch /etc/systemd/system/supervisord.service
将以下内容添加到文件中。
[Unit]
Description=Supervisor daemon
Documentation=http://supervisord.org
After=network.target
[Service]
ExecStart=/usr/local/bin/supervisord -n -c /etc/supervisor/supervisord.conf
ExecStop=/usr/local/bin/supervisorctl $OPTIONS shutdown
ExecReload=/usr/local/bin/supervisorctl $OPTIONS reload
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
Alias=supervisord.service
激活监督服务。
sudo systemctl start supervisord.service
只要服务文件位于/etc/systemd/system
目录中,它将在系统启动时自动启动。
您可以检查服务的状态。
systemctl status supervisord.service
另外,您可以签出日志。
sudo journalctl -u supervisord.service
由主管控制的程序[program]
在配置的不同部分中给出。对于我们要管理的每个程序,我们将创建一个独立的配置文件,通知命令可执行路径,任何环境变量以及在关机的情况下如何执行。
首先,让我们创建一个记录时间戳的简单脚本。创建一个名为hello_supervisor.sh
(您希望在任何地方,我们将引用此脚本的完整路径)的文件。
touch hello_supervisor.sh
现在,将以下内容放入其中
#!/bin/bash
while true
do
# Echo current timestamp to stdout
echo Hello Supervisor: `date`
# Echo 'error!' to stderr
echo An error ocurred at `date`! >&2
sleep 1
done
现在使其可执行
chmod +x hello_supervisor.sh
实际上,该脚本几乎没有用。但是,我们可以使用它来展示主管的力量。通过运行以下命令来创建相应的配置文件。
sudo touch /etc/supervisor/conf.d/hello_supervisor.conf
现在将以下内容放入该文件。
[program:hello_supervisor]
command=/home/USER/hello_supervisor.sh
autostart=true
autorestart=true
stderr_logfile=/var/log/hello_supervisor.err.log
stdout_logfile=/var/log/hello_supervisor.out.log
注意: 请务必USER
使用您的用户名替换。
我们将逐步检查此配置。
[program:hello_supervisor]
command=/home/USER/hello_supervisor.sh
首先,配置从定义名称为hello_supervisor的程序开始。它还通知要运行的可执行文件的完整路径。
autostart=true
此行指出,启动超级用户时,该程序应自动启动。
autorestart=true
如果程序由于某种原因退出,该行会通知主管自动重新启动该过程。
stderr_logfile=/var/log/hello_supervisor.err.log
stdout_logfile=/var/log/hello_supervisor.out.log
这些行定义日志文件位置stderr
和stdout
分别。
既然我们已经安装并配置了主管,就可以管理流程。
添加新程序后,我们应该运行以下两个命令,以通知服务器重新读取配置文件并应用所有更改。
sudo supervisorctl reread
sudo supervisorctl update
现在执行supervisorctl
客户端。
sudo supervisorctl
您将看到已注册过程的列表。您将看到一个hello_supervisor
带有RUNNING
状态的过程。
hello_supervisor RUNNING pid 6853, uptime 0:22:30
supervisor>
类型help
为avaialable命令的列表。
supervisor> help
default commands (type help <topic>):
=====================================
add exit open reload restart start tail
avail fg pid remove shutdown status update
clear maintail quit reread signal stop version
概括地说,我们可以start
,stop
并restart
通过将程序名作为参数传递给相应的命令程序。
supervisor> stop hello_supervisor
hello_supervisor: stopped
supervisor> start hello_supervisor
hello_supervisor: started
supervisor> restart hello_supervisor
hello_supervisor: stopped
hello_supervisor: started
supervisor>
我们还可以通过tail
命令查看程序输出。
supervisor> tail hello_supervisor
Hello Supervisor: Mon Sep 25 19:27:29 UTC 2017
Hello Supervisor: Mon Sep 25 19:27:30 UTC 2017
Hello Supervisor: Mon Sep 25 19:27:31 UTC 2017
对于stderr
输出,您也可以使用tail
。
supervisor> tail hello_supervisor stderr
An error ocurred at Mon Sep 25 19:31:12 UTC 2017!
An error ocurred at Mon Sep 25 19:31:13 UTC 2017!
An error ocurred at Mon Sep 25 19:31:14 UTC 2017!
通过调用status
命令,您可以查看所有已注册程序的状态。
完成后,您可以退出。
supervisor> quit
要允许访问受监管的Web服务器,请打开受监管的配置文件,然后找到该[inet_http_server]
部分。
nano /etc/supervisor/supervisord.conf
现在,使用以下内容更新本节的配置。
[inet_http_server]
port=*:9001
username=your_username
password=your_password
替换your_username
并your_password
使用所需的凭据,保存您的修改和重新启动监督服务。
sudo systemctl restart supervisord.service
记住要允许TCP
访问9001
防火墙上的端口,然后再http://{server-ip}:9001
从浏览器访问。询问时,请提供username
和password
。现在,您可以从Web控制您的流程。
我们已经安装了supervisor的最新版本,了解了如何配置它以使用systemd进行系统自动启动,还介绍了的基本用法supervisorctl
。有关更高级的配置和用例,请参阅官方指导性文档。
Oxwall是一个开源社交网络软件平台,可用于免费构建自定义社交网站(SNS)。在这篇文章中,
使用其他系统?Review Board是一个免费且开源的工具,用于检查源代码,文档,图像等。这是基于网络的软件战
使用其他系统?October 1.0 CMS是基于Laravel框架构建的简单,可靠,免费和开源的内容管理系统(CMS)
Xubuntu是XFCE + Ubuntu!XFCE是Ubuntu的轻量级GUI /桌面。Vultr服务器需要其他依赖项,默认情况下未安装这些依赖项。
使用其他系统?Monica是一个开源的个人关系管理系统。可以将其视为CRM(销售团队使用的一种流行工具
简介SSL(代表安全套接字层)及其后续版本TLS(代表传输层安全性)是需要加密的加密协议。
使用其他系统?MODX Revolution是一种快速,灵活,可扩展,免费和开源的企业级内容管理系统(CMS),由
朱莉娅(Julia)通常称为JuliaLang,是一种用于数值计算的编程语言。Julia的速度和C一样快,但是却不牺牲可读性
Ruby on Rails(RoR)是用Ruby编程语言编写的框架,可让您将Ruby与HTML,CSS和类似的程序结合使用。
使用其他系统?Anchor是用PHP编写的轻量级开源博客CMS。Anchors源代码托管在GitHub上。本指南将向您展示
简介Debian 10(Buster)是Debian 9(Stretch)的后继产品。它于2019年7月6日发布。在本教程中,我们将升级一个existin
在Linux服务器上正确设置日期和时间非常重要。您的服务器日志和其他重要信息都将反映时区
使用其他系统?Taiga是用于项目管理的免费和开源应用程序。与其他项目管理工具不同,Taiga使用增量
本文是有关在Ubuntu 14.04上安装和配置Nagios的2部分系列文章的一部分。第1部分:Nagios服务器第2部分:远程主机概述Nagio
Vultr提供了几种不同的方式来访问VPS以进行配置,安装和使用。访问凭据VPS ar的默认访问凭据
使用其他系统?Grav是用PHP编写的开源平面文件CMS。Grav源代码公开托管在GitHub上。本指南将向您展示如何
使用其他系统?Pagekit 1.0 CMS是一个美观,模块化,可扩展,轻量级,免费和开源的内容管理系统(CMS),具有
使用其他系统?BigTree CMS 4.2是一种快速,轻量级,免费和开源的企业级内容管理系统(CMS),具有广泛的功能。
FTP是用于通过Internet传输文件的有用协议,本指南将向您展示如何设置vsFTPd(非常安全的文件传输协议守护程序)o
简介如果您经营一个重要的网站,则最好将文件镜像到辅助服务器。如果您的主服务器有网络
在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。
快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。
学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。
使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。
了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。
勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根
ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。
Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+
閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。
最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息