fedora23和centos7+ 都是使用的 systemd 来代替sysv 管理系统启动和服务了. 在systemd 中主要包含两个方面的内容,

  • 当打开/etc/inittab 文件时, 会看到:

    inittab is no longer used,

    Adding configuration here will have no effect on system.

    systemd uses 'targets' instead of runlevels. By default, there are two main targets:

    multi-user.target: analogous to runlevel 3

    graphical.target: analogous to runlevel 5

    To view current default target, run: systemctl get-default

    To set a default target, run systemctl set-default TARGET.target

  • 一个是系统服务service, 像很多的 系统服务包括httpd.service等都是放在 systemd/system下的;

  • 另一个就是 系统的启动管理.包括原来的 /etc/inittab, runlevels 等 都是由 systemd/system/下的target 来管理的了.

  • target 被设计成层级结构,逐级包含和require. 比如: multi-user.target就类似于原来的 runlevel3 它包含 basic.target. 而graphical.target就类似于(analogous to)原来的runlevel5. 它又包含 multi-user.target.每个target都有对应的需求启动项,包含在对应的 *.target.wants(wants 就是对应的目标所需要的内容...)

  • 在每个target中, 的内容是: 规定了前提条件: requisite, 先于当前target 启动的服务Before=...,当前服务启动后, 然后还要启动的服务 After=... 

[foo@localhost system]$ ls *.wants  ## 查看各个目标需要的wants, 每个wants下列出了需要的哪些服务. systemd就是这样来管理系统启动的
anaconda.target.wants:
anaconda-nm-config.service anaconda-tmux@tty2.service # basic.target.wants:
alsa-restore.service alsa-state.service fedora-autorelabel-mark.service fedora-autorelabel.service fedora-loadmodules.service busnames.target.wants:
org.freedesktop.hostname1.busname org.freedesktop.login1.busname org.freedesktop.resolve1.busname
org.freedesktop.import1.busname org.freedesktop.machine1.busname org.freedesktop.systemd1.busname
org.freedesktop.locale1.busname org.freedesktop.network1.busname org.freedesktop.timedate1.busname dbus.target.wants: default.target.wants: # graphic.target包含(requires multi-user.target, multi-user.target又requires basic.target)
graphical.target.wants:
systemd-update-utmp-runlevel.service # multi-user.target需要的wants.
multi-user.target.wants:
dbus.service plymouth-quit.service systemd-ask-password-wall.path systemd-update-utmp-runlevel.service
getty.target plymouth-quit-wait.service systemd-logind.service systemd-user-sessions.service

在 markdown中, 如果有多个回车换行, 至少是可以认识一个 换行的, 即可以显示 一个空行的, 但是多个空行(回车换行)无效

在 显示/过滤 符合 条件的 多个目录时, 可以使用 -d (--directory) 选项,将只显示 目录本身, 而不显示内容. 这个将很有用. show directroies themselves not their contents.

在 /usr/lib/systemd/system下, default.target 是一个指向 默认启动的target的 软链接. 这个就是供 systemd的管理工具 systemctl 来获得默认启动 级别的 get-default.

在bash中, 要将多行字符串 重定向输出到 文件中, 使用下面的格式

[foo@localhost ~]$ cat > 重定向文件名.txt   <<eof
> [daemon]
> autologinEnabled = true
> autologinUser = liveuser
> eof (如果是在脚本中, 就没有前面的大于符号)

但是在 /usr/lib/systemd/system 下的 basic.target.wants, multi-user.target.wants, graphical.target.wans中都没有发现syslog, 它们里面只有一些 需要的service服务. 而且在 /etc/rc5.d中也没用 什么 S20syslog 文件?

在 /usr/include/中是一些linux系统要使用的 头文件. 其中一些 数据结构本身的 定义 放在 /usr/include/bits 目录中,

  • 而 操作这些数据结构的同名文件 放在 /usr/include中,
  • 比如: 存储当前登录用户信息的文件 有: /var/log/btmp 和 存储以往登录过的用户的信息文件 /var/log/wtmp (这两个文件是数据库文件, 非ascii文件,不可读) . 这两个文件使用的 基本的数据结构就是 一个结构体 struct utmp() . 参考: http://blog.chinaunix.net/uid-25909722-id-2851379.html
  • 关于utmp这个结构体的具体定义是放在 /usr/include/bits/utmp.h文件中的.
  • 而关于结构体 utmp的操作的函数, 比如 getutmp, setutent等 是放在 /usr/include/ utmp.h文件中的.
  • 根据这个结构体的一些信息和操作函数, 就可以 自己写成 类似于 linux的 who命令的 用户信息输出的 自定义命令程序等..

关于utmp, wtmp, btmp?

  • utmp maintains a full accounting of the current status of the system, system boot time (used by uptime), recording user logins at which terminals, logouts, system events etc.

  • wtmp acts as a historical utmp

  • btmp records failed login attempts

The utmp file is not a text file, but rather a binary format which needs to be edited by specially crafted programs.

### 原来, 从fedora20开始, 就没有 使用 /var/log/messages 了, 而是使用的 journalctrl 来代替 messages了, 参考: http://blog.163.com/shishihoule@126/blog/static/5729354720142204418292/
- 所以 就没有 syslogd, rsyslogd, ksyslogd, 如同上面所说的那样, 在 /etc/rc5.d目录中 也没有 S20syslog 文件了.
- 就是: 原来的 显示messages 的命令 "cat /var/log/messages" 命令直接使用 一个单词, journalctl 来显示了,
- 其他的相关命令 使用 journalctl -f 递增查看. 和 过滤 : journal | grep 'foo'


要保存 fedora的 gnome的 会话, 使得下一次启动时也能 恢复本次的 窗口和状态, 方法是: 使用 dconf-editor 可是化界面设置, 或者使用 命令:

gsettings set org.gnome.SessionManager auto-save-session true

只能恢复第一个 workspace中的 内容 因此, 如果你想 下次开机时, 还是有这些内容,

可以把他们都放在第一个workspace中,


namespace 指的是所在的目录,是位置

而use 是指的使用的类文件,是文件

控制器的类名应该是:Foo + Controller:FooController 而不只是单单的class Foo. 你是继承自Controller的,那自然你也应该是 xxxController才行。

关于apache中的module模块的名称

  1. 有三个地方使用到了模块的名称,其中只有在httpd.conf中的 # LoadModule rewrite_module LoadModule后面的模块名称使用的是 ModuleName_module 外, 其他地方都是使用 的 mod_modulename, 比如:
LoadModule rewrite_module modules/mod_rewrite.so

httpd.conf中: <IfModule mod_rewrite> .... </IfModule>

thinkphp中的.htaccess 配置中:  <IfModule mod_rewrite.c>  ... <IfModule>

要实现/开启 地址重写, 除了 'URL_MODEL' => 2外, 还要 给 apache启用 /开启 LoadModule rewrite_module, 否则重写地址不生效.

注意区分 apache 和 php的 插件机制的不同, apache叫 modules, 名称是:xxx_module. 比如rewrite_module modules/mod_rewrite.so 而 php叫做扩展extensions. 名称是: php_xxx, 比如 php_mysql, php_mysqli等等.

apache的模块是放在 Apache 目录的 modules文件夹中的, 模块的路径也是以 Apache目录为相对路径的. 所以 LoadModule rewrite_module modules/mod_rewrite.so 的目录就是直接从 modules开始写起的.


经过实践验证, 确实是, URL_MODEL 既可以放在应用配置文件中, 这时所有的模块都使用相同的url模式, 也可以放在 模块配置文件中, 那么就只有这一个模块 使用 你配置的url模式.

要使用URL 模式为重写模式, 要求 .htaccess要和 入口文件index.php放在同一位置. 同一个目录下才行. 当然 的, rewrite的作用就不 只是 省略入口文件

.htaccess文件 是用来 影响 你要设置的某个目录的, 所以, 如果你要处理某个目录, 不一定是 Application/目录, 就要在对应的目录下 创建 相应的 .htaccess文件, 这个.ht..文件可以有多个


关于rewrite重写的规则问题:

  1. 重写规则中,不能以斜杠/ 开始, 默认的重写只是对 http://servername/ 后面的内容才重写, 对servername/ 总是不重写不管的.
  2. 如果url_mode=2 只重写斜杠的部分, 对问号后面的 query_string 不管.
也可以自己写 重写规则, 不一定只是 那个 省略index.php的重写规则 比如下面的规则就是 将 cool的访问 重写/重定向到bar的操作action

  RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^Home/Foo/cool$ index.php/Home/Foo/bar [QSA,PT,L]
# 默认的重写规则是: RewriteRule ^.*$ index.php/$1 [QSA,PT,L] 当访问如下的url地址时,
http://localhost/Home/Foo/cool?val=3 获得的 dump($_SERVER) 的输出:
array
'REDIRECT_STATUS' => string '200' (length=3)
'HTTP_HOST' => string 'localhost' (length=9)
'HTTP_USER_AGENT' => string 'Mozilla/5.0 (Windows NT 6.1; rv:38.0) Gecko/20100101 Firefox/38.0' (length=65)
'HTTP_ACCEPT' => string 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' (length=63)
'HTTP_ACCEPT_LANGUAGE' => string 'en-US,en;q=0.5' (length=14)
'HTTP_ACCEPT_ENCODING' => string 'gzip, deflate' (length=13)
'HTTP_COOKIE' => string 'PHPSESSID=ufujblmd3tnp9ch7lsao4ov594; pgv_pvi=8625812480; pgv_si=s4041340928' (length=76)
'HTTP_CONNECTION' => string 'keep-alive' (length=10)
'PATH' => string 'C:\Program Files\Intel\iCLS Client\;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Windows Live\Shared;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;' (length=363)
'SystemRoot' => string 'C:\Windows' (length=10)
'COMSPEC' => string 'C:\Windows\system32\cmd.exe' (length=27)
'PATHEXT' => string '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC' (length=53)
'WINDIR' => string 'C:\Windows' (length=10)
'SERVER_SIGNATURE' => string '' (length=0)
'SERVER_SOFTWARE' => string 'Apache/2.2.17 (Win32) PHP/5.3.5' (length=31)
'SERVER_NAME' => string 'localhost' (length=9)
'SERVER_ADDR' => string '127.0.0.1' (length=9)
'SERVER_PORT' => string '80' (length=2)
'REMOTE_ADDR' => string '127.0.0.1' (length=9)
'DOCUMENT_ROOT' => string 'C:/wamp/www/' (length=12)
'SERVER_ADMIN' => string 'admin@localhost' (length=15)
'SCRIPT_FILENAME' => string 'C:/wamp/www/index.php' (length=21)
'REMOTE_PORT' => string '53416' (length=5)
'REDIRECT_QUERY_STRING' => string 'val=3' (length=5)
'REDIRECT_URL' => string '/Home/Foo/cool' (length=14)
'GATEWAY_INTERFACE' => string 'CGI/1.1' (length=7)
'SERVER_PROTOCOL' => string 'HTTP/1.1' (length=8)
'REQUEST_METHOD' => string 'GET' (length=3)
'QUERY_STRING' => string 'val=3' (length=5) // 不管是query,还是 request等, 都没有ing
'REQUEST_URI' => string '/Home/Foo/cool?val=3' (length=20) // REQUEST_URI 是最真是/最直接的 请求地址, 就是跟浏览器的地址栏中的内容完全一样.
'SCRIPT_NAME' => string '/index.php' (length=10) // 会显示 真实的 脚本名称,在 servername后面的 脚本名称, 如这里的 /index.php
'PATH_INFO' => string 'Foo/bar' (length=7) // PATH_INFO 包含的是: 控制器/操作: Controller/Action
'PATH_TRANSLATED' => string 'C:\wamp\www\Home\Foo\bar' (length=24)
'PHP_SELF' => string '/index.php/Home/Foo/bar' (length=23) 是用来 和 REQUEST_URI 区分查询字符串的, 是 REQUEST_URI去掉查询字符串后的内容.
'REQUEST_TIME' => int 1516797830

在 win中 , php的函数名和变量要区分大小写? 而关键字和结构词汇不区分大小写吗?

通常来说, 只有 变量(及其 变量数组的 下标) 是在win下 严格区分大小写的. 而其他都不分大小写.

但是 , 在 linux下, 一切 都是区分 大小写的 , 一切都是 case sensitive的.

所以 养成一个习惯, 不管是在 哪种平台下, 不管是win, 还是 linux下, 都要养成 区分大小写的习惯.

也就是 只有变量 才会 区分大小写. 而其他任何的 关键字 如echo, 结构语法如if, If ELSe等, 常量等如__File__ 都不会区分大小写.

=======================

<IfModule [!] module_file | module_name >... </IfModule> 格式中, ifmodule是指, 判断所指定的 模块 是否指定/是否 启用/是否生效 来决定是否启用中间的代码段. 其中, 可以使用 否定的 符号!, 后面的条件可以用 编译模块时的文件名, 也可以指定 模块名称, 所以, <IfModule mod_rewrite.c 或者 mod_rewrite 都是可以的.

在linux下, httpd的 module 模块插件, 是放在 /usr/lib/httpd/modules这个目录下的, 配置文件中的 mod_路径也是以 这个目录下 为相对路径的: LoadModule rewrite_module modules/mod_rewrite.so

解决/var/log下没有messages文件的问题?的更多相关文章

  1. (转)ubuntu/var/log/下各个日志文件

    本文简单介绍ubuntu/var/log/下各个日志文件,方便出现错误的时候查询相应的log   /var/log/alternatives.log-更新替代信息都记录在这个文件中 /var/log/ ...

  2. ubuntu/var/log/下各个日志文件

    ubuntu/var/log/下各个日志文件 本文简单介绍ubuntu/var/log/下各个日志文件,方便出现错误的时候查询相应的log   /var/log/alternatives.log-更新 ...

  3. Linux /var/log下各种日志文件

    Linux /var/log下各种日志文件:

  4. ubuntu /var/log/下文件介绍

    本文简单介绍ubuntu /var/log/下各个日志文件,方便出现错误的时候查询相应的log   /var/log/alternatives.log -更新替代信息都记录在这个文件中 /var/lo ...

  5. tail -fn 1000 test.log | grep '关键字' 按照时间段 sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p' test.log /var/log/wtmp 该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件

    Linux 6种日志查看方法,不会看日志会被鄙视的 2020-02-11阅读 7.3K0   作为一名后端程序员,和Linux打交道的地方很多,不会看Linux日志,非常容易受到来自同事和面试官的嘲讽 ...

  6. 解决“var/log/sysstat/sa21: 没有那个文件或目录 请检查是否允许数据收集”

    想使用sar查看一些系统的一些活动信息,发现报错.记录一下 使用apt install sysstat后第一次 报错 /var/log/sysstat/sa21: 没有那个文件或目录 请检查是否允许数 ...

  7. Linux /var/log下的各种日志文件详解

    1)/var/log/secure:记录登录系统存取数据的文件;例如:pop3,ssh,telnet,ftp等都会记录在此. 2)/var/log/wtmp:记录登录这的信息记录,被编码过,所以必须以 ...

  8. 03_每周 5 使用 tar 命令备份/var/log 下的所有日志文件

    ]# vim /root/logbak.shtar -czf log-`date +%Y%m%d`.tar.gz /var/log ]# crontab -e -u root00 03 * * 5 / ...

  9. liunx下误删除/var目录下的empty文件,导致ssh连接不上

    清理Liunx上不用的文件,导致误删 /var/下的empty文件,因为用的是ftp删的,所以可能有隐藏文件没有看到,导致其他同事都登录不上去 解决方法: 1.在/var文件夹下,重新建立empty文 ...

随机推荐

  1. Linux常用网络工具:Http压力测试之ab

    ab的全称是Apache Bench,是Apache自带的网络压力测试工具,相比于LR.JMeter,是我所知道的 Http 压力测试工具中最简单.最通用的. ab命令对发出负载的计算机要求很低,不会 ...

  2. sitecore系统教程之内容创作入门

    在Sitecore中,有两种编辑工具,您可以在其中创建和编辑网站上的内容: 内容编辑器 - 专为熟悉Sitecore及其包含的功能的经验丰富的内容作者而设计的应用程序. 体验编辑器 - 一种直观的编辑 ...

  3. url组成

  4. git克隆远程项目并创建本地对应分支

    http://jingyan.baidu.com/article/19192ad83ea879e53e5707ce.html

  5. Linux基础命令---查找用户信息finger

    finger finger指令用来查找.显示指定用户的信息.查询远程主机信息是,可以用user@localhost来指定用户. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.S ...

  6. pyspider操作千万级库,pyspider在对接量级较大库的策略

    pyspider操作千万级库,pyspider在对接量级较大库的策略 如果是需要pyspider正常的流程去执行,那必然是会在on_strat()时任务执行超时,可能只读取出几万条或十几万条数据就会被 ...

  7. springboot 接收post和get请求

    接收post请求: @RequestMapping(value = "/api/v1/create_info", method = RequestMethod.POST) publ ...

  8. Andriod post Api与返回值

    vs后台api控制器  post接收参数----HttpContext.Current.Request.Params["account"].ToString() 返回值为对象返回, ...

  9. 如何通过命令行使用Wisdom RESTClient?

    Wisdom RESTClient V1.2版本开始支持命令行方式运行. 工具地址: https://github.com/Wisdom-Projects/rest-client 使用说明:java ...

  10. 隐藏域传值到后台controller

    开发背景:一个页面有一个下拉框和一个单选按钮,下拉框保存的是厂商信息,单选按钮保存的是产品信息.每次下拉框的内容被选中,把厂商编码保存到隐藏域 <input type="hidden& ...