0%

傻傻的开发萌新最近研究了一点flask,发现某个网站进行某些操作的时候,多用户会报错,天真的认为是单进程的原因(天哪),然后就研究了下gunicorn,发现它可以很方便的实现多进程,而且对服务器性能提高有很大帮助,这里只简单记录一下如何实现多进程。

只需要flask+gunicorn,没有使用nginx做反代。

使用http://ServerIP:5555/访问网站。

flask项目名叫app,它通过control.py启动。

0x00 安装gunicorn

pip install gunicorn

0x01 配置文件  
#cat gun.conf

bind = '0.0.0.0:5555'
workers = 10 # 十进程
proc_name = 'app'
pidfile = '/tmp/app.pid'

0x02 修改flask脚本

在if name ==  ‘main‘:这一行之前加上

Read more »

之前折腾完gunicorn,服务器其他的网站就全部都挂了,其中几个网站报错如下:

Warning: Unknown: open(/var/lib/php/session/sess_g9fl3papdd22kkv9gc2mhdok47, O_RDWR) failed: Permission denied (13) in Unknown on line 0 Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php/session) in Unknown on line 0

phpMyAdmin报错我没有记下来,刚刚搜了一下,应该翻译是“无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装。”

仔细看了下报错,第一个那一大长串报错分成两段,一段是说访问失败了,一段是说写session失败了。phpmyadmin的报错也是创建会话失败。于是找到php.ini,里面写的好好的:

session.save_path = /var/lib/php/session

这个文件夹是确实存在的,那就应该是权限问题。于是

chmod  -R 777 /var/lib/php/session

解决问题。

具体表现为合上盖子不挂起和关机的时候卡住无法正常关机。

玄学问题,有个老司机找到了一个解决方法,我翻译一下。

1.建立/lib/systemd/system-sleep/ehci-pci.sh,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/bin/bash
case $1/$2 in

pre/*)

# Unbind ehci for preventing error

echo -n “0000:00:1d.0” | tee /sys/bus/pci/drivers/ehci-pci/unbind

;;

post/*)

# Bind ehci for preventing error

echo -n “0000:00:1d.0” | tee /sys/bus/pci/drivers/ehci-pci/bind

;;

esac

2.修改文件权限
$ sudo chmod 755 /lib/systemd/system-sleep/ehci-pci.sh

3.配置/etc/default/grub中的启动选项

GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash tpm_tis.force=1”

4.保存配置并执行

$ sudo update-grub

这条命令不行就用这条:

Read more »

**0 概述**

原生的ChromeOS除了上上网,处理一下文档,看看ppt之外,真的没什么卵用。所以我们需要魔改一下cb,让他变成真正的生产力工具。Cb装Linux系统的步骤基本都是一样的。

文末有更详细的参考资料。对于没有使用过Linux的纯小白,建议先去了解一些Linux基础知识。

1 准备工作

1.1 拆除保护螺丝

把背面的几个螺丝拆掉,小心撬开后盖,螺丝是左上角最大的那个,在无线网卡的旁边。


本手残并没有成功拆下来,但是用刀把某个地方的锡刮掉一部分,用电表打了下开路,然后就当作他是拆了……(后面说这种方法的弊端)

1.2 开启开发者模式(会清除所有数据!!!

请参考我之前写的另一篇文章中这部分:CHROMEBOOK使用CROUTON安装KALI2

Read more »

<Warning:含有大量剧透!>

第一次写评测=V=废话比较多多多包涵。嗯,本拖延症拖这个测评也拖了好久了。。。原本想起个装逼的名字,后来想想还是算了,我语文这么差,就不折磨各位看官了……

如果不是真信仰以及真土豪,其实我并不是很推荐入这个游戏,还是从Ezio三部曲开始玩比较好,无他,这只是一部试水之作,无中文字幕,流程相当无聊。当然,你想来朝圣的话,我还是很欢迎的XD

Read more »

检测程序

ps命令有三种风格的参数:Unix,BSD和GNU。

  1. Unix风格:常用参数-ef,查看所有进程(-e)并且显示完整格式的输出(-f)。使用-l参数会获得更多的输出。输出中S所在列代表进程的状态(0表示正在运行;S正在休眠;R表示可运行,正等待运行;Z代表僵化,进程已结束但父进程不存在;T代表停止)。PRI表示进程优先级,数字越大优先级越低。SZ:假如内存被换出,所需交换空间的大致大小。-H参数可以用层级格式来显示进程(树状,用来显示父进程)。
Read more »

Shell提示符

默认提示符是$,表示shell在等待用户输入。

在Fedora上看起来是这样的: [tb@tb_fedora~]$

在Ubuntu上看起来是这样的: tb@user-desktop:$ tb是用户名,tb_fedora是主机名,是主目录的缩写。User-desktop是控制台编号。

可以用echo $PS1或者PS2来显示当前提示符设置。 PS1是默认格式,PS2是后续命令行提示符格式,当输入一个需要其他信息的命令时会以此格式显示。

Bash手册

man bash即可。 man [command]可以查看指定命令的手册

浏览文件系统

与win相反,Linux使用/而不是\来划分目录。Linux上安装的第一块硬盘位根驱动器。Linux会在根驱动器上创建一些特别的目录,叫做挂载点,来访问额外储存设备。 使用cd访问目录。.表示当前目录,..表示上级目录。

文件和目录列表

Read more »

其实我觉得这章没什么好做笔记的。 在图形化桌面出现之前,与Unix系统交互的唯一方式就是通过shell提供的文本命令行界面(CLI)。CLI只允许输出文本,只能显示文本和低级图形输出。 后来出了个Linux 控制台(应该就是tty),按ctrl+alt+F1~F10试试,有几个会分配给图形化界面。。 现在使用shell都是用的终端(Terminal),快捷键一般是ctrl+alt+T。 我把我终端的字的颜色改成绿色了, 简直爽翻。

1.1什么是Linux

Linux的作者是Linus大爷,嗯,我最喜欢他那句Read the f*cking source code.(RTFSC)

Linux系统可以分为四个部分:Linux内核;GNU工具组件;图形化桌面环境;应用软件。

计算机硬件直接与Linux内核交互,而内核与窗口管理软件、GNU系统工具链交互;GNU系统工具链又与窗口管理软件交互;最后窗口管理软件与应用软件交互。

内核

内核有四个功能:系统内存管理;软件程序管理;硬件设备管理;文件系统管理。

  1. 系统内存管理:安装Linux的时候,会有一个SWAP分区。如果内存页面有一段时间未被访问,就会被复制到SWAP中去。当程序要访问它时,再把它复制到物理内存里。
    观察虚拟内存的状态可以用cat /proc/meminfo

使用ipcs –m查看系统上当前共享内存页面。

  1. 软件程序管理:运行中的程序叫做进程。内核创建了第一个进程(init)。其实关机可以用init 0
    一些Linux发行版用一个表来管理要自启的进程,通常在/etc/inittab中。还有的采用/etc/init.d目录,将开机时启动或停止某个应用的脚本放在这里。脚本通过/etc/rcX.d目录下的入口启动,X代表运行级。Linux有5个运行级,为1时只有基本的系统进程启动,同时会启动一个tty。标准启动运行级为3,大多数应用软件都能跑。为5时会启动图形化的X Window系统。

使用ps ax命令可以看到当前进程。

Read more »

晚上做数电的课程设计又消极怠工了(已经消极怠工一个多星期了好么喂),于是就来写读书笔记,希望能坚持下去吧。书名是《Linux命令行与shell脚本编程大全》,早上在工作室值班的时候发现的,起初以为挺难的,没想到我一看就是一上午……个人觉得这本书比鸟哥的基础篇好,也许是因为想学习的东西的侧重点不一样,这本比较合我口味吧。

最近几天还一直都用我的cb在Github上写(chao)The C Programming Language的习题解答,已经开始三天了,嗯,http://github.com/tangbao,欢迎监督。

Read more »