1、init 8这条指令的作用?*
查了下官方文档有这么一句:运行级别 7-9 虽然在文档中说明,但也可以使用。不使用它们的原因只是因为"传统" Unix 变种不使用这些运行级别
在CentOS 6.8下
[[email protected] /]# init 8
init: illegal runlevel: 8
Try `init --help‘ for more information.
真不知道有什么用了,望高手指教
2、kill -9 0这条指令的作用?*
pid:可能选择有以下四种
1. pid大于零时,pid是信号欲送往的进程的标识。
2. pid等于零时,信号将送往所有与调用kill()的那个进程属同一个使用组的进程。
3. pid等于-1时,信号将送往所有调用进程有权给其发送信号的进程,除了进程1(init)。
4. pid小于-1时,信号将送往以-pid为组标识的进程。
3、写一个简单的Shell脚本,脚本运行时让Ctrl-C无法中断该shell脚本?*
在脚本里加入trap "" SIGINT 或 trap "" 2 以忽略SIGINT信号
4、如何快速编译单一的内核模块?*
make -C <KDIR> SUBDIRS=$PWD modules (其中<KDIR>是内核源码所在的路径)
make -C /home/itk/evdev/Linux-2.6.18/ SUBDIRS=/home/itk/evdev/linux-2.6.18/drivers/input/ modules
-C 参数后面加config文件所在的文件夹
SUBDIRS:参数后面是要编译的模块
5、如何动态增加Apache和PHP模块?*
Apache动态增加模块:
cd /home/redhat/httpd-2.2.15/modules/filters
/usr/local/apache2/bin/apxs -i -c -a mod_deflate.c
apxs命令参数说明:
-i 此选项表示需要执行安装操作,以安装一个或多个动态共享对象到服务器的modules目录中。
-a 此选项自动增加一个LoadModule行到httpd.conf文件中,以激活此模块,或者,如果此行已经存在,则启用之。
-A 与 -a 选项类似,但是它增加的LoadModule命令有一个井号前缀(#),即此模块已经准备就绪但尚未启用。
-c 此选项表示需要执行编译操作。它首先会编译C源程序(.c)files为对应的目标代码文件(.o),然后连接这些目标代码和files中其余的目标代码文件(.o和.a),以生成动态共享对象dsofile 。如果没有指定 -o 选项,则此输出文件名由files中的第一个文件名推测得到,也就是默认为mod_name.so 。
重启生效:/usr/local/apache2/bin/apachectl restart
PHP动态增加模块:
以添加memcache模块为例,
wget http://pecl.php.net/get/memcache-3.0.8.tgz
tar zxf memcache-3.0.8.tgz
cd memcache-3.0.8
/usr/local/php/bin/phpize #通过phpize添加php扩展插件
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
ls /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/ #查看是否有memcache.so文件
配置php.ini:
cd /usr/local/php/lib
cp php.ini php.ini.bak #备份配置文件
vim php.ini搜索extension_dir,在后面加入插件路径/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/,注意php.ini的注释符为;号,去掉注释符后必须顶格
并且增加一行extension = memcache.so
kill -SIGUSR2 `cat /app/logs/php-fpm.pid` (Nginx下平滑重启php生效)
最后查看phpinfo页面,搜索memcache,如果有的话表示安装成功
6、freebsd中boot0的作用是什么?*
boot0是FreeBSD的引导管理器,如果您只安装了一个操作系统,那么一个标准的MBR就足够了。如果您在磁盘上安装了多个操作系统那么您可以安装一个引导管理器(如boot0),它能显示一张操作系统的列表,您能从中选择启动哪个。