Submitted by gouki on 2019, March 1, 10:14 PM
出现如标题错误的最大可能原因是。。。
你当前所在的目录被改名或者被删除了。。,尝试cd /回到根目录下再处理
Tags: linux, getcwd
Linux | 评论:0
| 阅读:10772
Submitted by gouki on 2018, March 17, 2:35 PM
简单的说吧,两种配置,一种是客户端,一种是服务端 ,客户端配置ServerAliveInterval,服务端配置:ClientAliveInterval和ClientAliveCountMax
ClientAliveInterval 配置为60,CountMax设置为0,这样就方便了。每隔段时间会发心跳到客户端 ,短时间的超时也不会断
改的是/etc/ssh/sshd_config。。。记得是sshd_config。。。改完后/etc/init.d/ssh restart
哦,我是debian系的
Tags: linux
Linux | 评论:0
| 阅读:13274
Submitted by gouki on 2012, July 10, 9:11 AM
我知道INNODB不錯,但是我的VPS只有小小的512M內存,實在是扛不住,這玩意啥也不錯就吃掉了我不少內存了。於是我直接在my.cnf裏加上了skip-innodb。結果服務無法啟動。
找了一下資料 ,原來mysql 5.5以上的時候,默認的引擎就是innodB,因此,如果要skip掉它,必須告訴 mysql我的默認引擎是myisam。因此代碼就變成了這樣,在[mysqld]中加入:
default-storage-engine = MyISAM
然後再skip-innodb,接著運行service mysql restart,世界清靜 了。
原來運行top的時候,mysql一直佔有著70%左右的CPU。現在立刻清零。
一下子安逸了
Tags: linux, mysql, innodb, myisam
Linux | 评论:0
| 阅读:17139
Submitted by gouki on 2012, May 18, 10:46 PM
关注一下这玩意是因为在命令行下写程序的时候,发现不能够自我守护。都只能用shell来再开一个进程监控。本来想做三角监控的,但想想,只是为了一个小程序,我得写三个程序来自我守护,真没劲啊。
所以,找到pcntl_fock函数的时候很激动,其实在很久以前看过,但是没关注过,毕竟很多时间跑命令行程序的时候,一下子就跑完了,真正跑了不退出的程序,真的很少用。
http://rainbird.blog.51cto.com/211214/277861/
- <?php
- $pid = pcntl_fork();
- if($pid == -1){
- //创建失败咱就退出呗,没啥好说的
- die('could not fork');
- }
- else{
- if($pid){
- //从这里开始写的代码是父进程的,因为写的是系统程序,记得退出的时候给个返回值
- exit(0);
- }
- else{
- //从这里开始写的代码都是在新的进程里执行的,同样正常退出的话,最好也给一个返回值
- exit(0);
- }
- }
- ?>
所以,以下内容就来自于上述代码中有涉及到的博客:
XML/HTML代码
- 这样一改好理解多了,如果你父进程希望知道子进程正常退出的话,可以加上前面的pcntl_wait.
- 函数的用法是整明白了,在实际的工作中有什么用处呢?
- 1.后台程序
- 命令行程序好写,服务程序也好写,笔者觉得这服务程序最难写.想想原来想在windows下写个服务啥的,又是要注册服务又是要这样那样的老费劲了.现在专职管理linux想让个命令行程序在后台运行,直接在命令后面加个&就搞定了.但是这样总觉得土.有了pcntl_fork突然发现世界是那么的美好.当主进程成功创建子进程并获得子进程的id以后,自己在临死前还不忘说一句:"我已成功运行,我的id是:xxxx(子进程的id)",完了还给系统返回个0(正常退出),哈哈,死都死的那么有尊严.
- 前面说的是程序常驻内存的情况,当然了这时候要注意内存的释放以及向日志文件打印信息,而不是往屏幕上(一打印信息程序就退出的哟).还有一种情况是:程序被其它脚本调用,其它脚本只关心程序是不是正常运行,如果程序要运行很长时间才能运行完的话,最好不让脚本等待.这样的话pcntl_fork又派上用场了:)
- 2.延时处理.
- 有的时候,我们程序退出的时候要清理自身产生的东西,比如说要删除自己(当然了linux下面是可以删除正在运行的文件的,只是举个例子),这个时候就可以另起动一个进程,然后自己结束了,把事情交给另一个进程来做.当我们写服务程序的时候,我们肯定是写日志文件记录程序的运行情况(要不谁知道程序是不是在那睡大觉的:0).程序正常退出的时候我们可以写一条日志说程序退出了,但是当程序收到linux下伟大的kill -9的时候,怎么记录自己的退出行为呢?额.....这个和php的进程信号有关好像和这个没多大关系.
- 另一种情况:一个完善的程序一般都支持start,stop,restart这样的参数.start好说,stop也好说,既然start和stop都好说了,这个restart就先stop然后再start就可以了啊.额...好像又和pcntl_fork没多大关系,当你收到重启的信号总不能还是kill然后再start吧,是不是太黄太暴力了?还是温柔一点,让当前进程退出,让另外的进程再把它拉起来吧.在windows下想实现这一点似乎很困难呢,比如程序更新的时候,一般都是单写更新程序,或者程序退出的时候另起动一个批处理启动自己:)
- 3.不死进程
- 其实就是传说中的双进程了.早些年的时候万象网管为了达到不被恶意结束的目的用的就是这招了.虽然咱不用担心程序被人恶意停止,但是也保不齐主程序因为任务太重抗不住自己先挂了(这种情况也不是不会发生).所以......
- 说了这么多,只是对写程序的一些思考,对一个函数用法的延伸.我想到了这么多,你呢?
不知道是否能够做到这个地步,但是先关注一下,只是现在加班频繁,都不知道有没有时间来折腾它。套用锅巴说的一句:忙的象狗的人往 往都是穷鬼
Tags: linux, php
Linux | 评论:1
| 阅读:17494
Submitted by gouki on 2012, May 14, 9:10 AM
在微博的#SAE技术分享# 看到一些有意思的东西,比如这一篇的标题,嗯,确实是有一些奇怪的玩意。
比如,ubuntu下的apt-get moo,居然出来了这样的玩意,你能相信吗?》
XML/HTML代码
- root@webserver:/# apt-get moo
- (__)
- (oo)
- /------\/
- / | ||
- * /\---/\
- ~~ ~~
- ...."Have you mooed today?"...
好一只羊?还有一些其他的命令,比如yes,好象记得这个命令是专门用来处理自动化安装的吧?即自动输入y,N个,直到安装完成,如果没有安装,就在屏幕上拼命的输出。。。
还有一些其他的。。比如banner,会将你输入的字符用##打印出来,比如我这个:
XML/HTML代码
- root@webserver:/# banner bannertest
-
- ##### ## # # # # ###### #####
- # # # # ## # ## # # # #
- ##### # # # # # # # # ##### # #
- # # ###### # # # # # # # #####
- # # # # # ## # ## # # #
- ##### # # # # # # ###### # #
,再比如fortune,这个函数很有意思,既能学英文又可以很好玩,该网页上这么显示了:
XML/HTML代码
- orange@orange-desktop:~$ fortune
- Q:How many IBM types does it take to change a light bulb?
- A:Fifteen. One to do it, and fourteen to write document number
- GC7500439-0001, Multitasking Incandescent Source System Facility,
- of which 10% of the pages state only "This page intentionally
- left blank", and 20% of the definitions are of the form "A:.....
- consists of sequences of non-blank characters separated by blanks".
想看更多?到这里看一下吧:http://www.linuxidc.com/Linux/2007-05/3784.htm,不是每个linuxer都是闷瓜。
Tags: sae, ubuntu, linux
Linux | 评论:0
| 阅读:17131