将systemd单元标记更改为journalctl / syslog

是否有可能更改系统托pipe服务使用什么标记进行日志logging? 例如,我的自定义服务report-daemon.service定义为

 # ... [Service] ExecStart=/usr/bin/php # ... # ... 

显示为php而不是report-daemon (它似乎从ExecStart推断标签)

 $ sudo journalctl --unit report-daemon # ... May 30 16:26:11 delta php[994]: Found 0 new revisions for Ctytn4a6zjw May 30 16:26:12 delta php[994]: Found 0 new revisions for efE8xuvUjAo # ... 

手册页没有列出在单元文件中设置的任何选项。 是否有可能在某处更改标签?

更新1:详细选项将以长格式列出,因此包括UNIT:

 [root@localhost]# journalctl --unit newnginx -o verbose -- Logs begin at Sun 2015-04-05 10:36:30 BST, end at Mon 2015-06-01 08:17:58 BST. -- Sun 2015-05-31 10:27:38.344553 BST [s=4cc44a9cf9344c948fd4716fe024439e;i=3198;b=be3381af5b1d4743a4ccc1e346eab405;m=1548bfaf08;t=5175d51fadf41;x=eb6bb8ee2b2be47e] PRIORITY=6 _UID=0 _GID=0 _BOOT_ID=be3381af5b1d4743a4ccc1e346eab405 _MACHINE_ID=9619293167aa4f76b45b745e9f4e8935 _HOSTNAME=localhost.localdomain _CAP_EFFECTIVE=1fffffffff _SYSTEMD_CGROUP=/ SYSLOG_FACILITY=3 SYSLOG_IDENTIFIER=systemd _TRANSPORT=journal _PID=1 _COMM=systemd _EXE=/usr/lib/systemd/systemd _CMDLINE=/usr/lib/systemd/systemd --system --deserialize 21 _SELINUX_CONTEXT=system_u:system_r:init_t:s0 CODE_FILE=src/core/unit.c CODE_LINE=1115 CODE_FUNCTION=unit_status_log_starting_stopping_reloading MESSAGE_ID=7d4958e842da4a758f6c1cdc7b36dcc5 MESSAGE=Starting nginx - high performance web server... UNIT=newnginx.service _SOURCE_REALTIME_TIMESTAMP=1433064458344553 Sun 2015-05-31 10:27:38.354983 BST [s=4cc44a9cf9344c948fd4716fe024439e;i=3199;b=be3381af5b1d4743a4ccc1e346eab405;m=1548bfd0ee;t=5175d51fb0127;x=bc50f03db39f8d09] PRIORITY=6 _UID=0 _GID=0 _BOOT_ID=be3381af5b1d4743a4ccc1e346eab405 _MACHINE_ID=9619293167aa4f76b45b745e9f4e8935 _HOSTNAME=localhost.localdomain _CAP_EFFECTIVE=1fffffffff _SYSTEMD_CGROUP=/ SYSLOG_FACILITY=3 _SELINUX_CONTEXT=system_u:system_r:init_t:s0 _TRANSPORT=stdout 

更新2:Python脚本来打印想要的条目:

 from systemd import journal j = journal.Reader() j.this_boot() j.add_match(_SYSTEMD_UNIT="newnginx.service") for entry in j: print('{} {}'.format(entry['_SYSTEMD_UNIT'], entry['MESSAGE'])) 

看看这个来自nginx的例子:

 [root@localhost tmp]# journalctl --unit nginx -- Logs begin at Sun 2015-04-05 10:36:30 BST, end at Sun 2015-05-31 11:12:29 BST. -- May 31 10:20:41 localhost.localdomain systemd[1]: Starting nginx - high performance web server... May 31 10:20:41 localhost.localdomain nginx[111169]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok May 31 10:20:41 localhost.localdomain nginx[111169]: nginx: configuration file /etc/nginx/nginx.conf test is successful May 31 10:20:41 localhost.localdomain systemd[1]: Failed to read PID from file /run/nginx.pid: Invalid argument May 31 10:20:41 localhost.localdomain systemd[1]: Started nginx - high performance web server. May 31 10:27:05 localhost.localdomain systemd[1]: Stopping nginx - high performance web server... May 31 10:27:05 localhost.localdomain systemd[1]: Stopped nginx - high performance web server. May 31 10:58:36 localhost.localdomain systemd[1]: Stopped nginx - high performance web server. May 31 11:12:29 localhost.localdomain systemd[1]: Starting nginx - high performance web server... May 31 11:12:29 localhost.localdomain nginx[112202]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok May 31 11:12:29 localhost.localdomain nginx[112202]: nginx: configuration file /etc/nginx/nginx.conf test is successful May 31 11:12:29 localhost.localdomain systemd[1]: Failed to read PID from file /run/nginx.pid: Invalid argument May 31 11:12:29 localhost.localdomain systemd[1]: Started nginx - high performance web server. 

有人过来,做一个psfind并杀死nginx:

 [root@localhost tmp]# ps -ef | grep nginx root 112205 1 0 11:12 ? 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf nginx 112207 112205 0 11:12 ? 00:00:00 nginx: worker process root 112212 111775 0 11:12 pts/4 00:00:00 grep --color=auto nginx [root@localhost tmp]# kill -9 112205 

该杂志现在包含:

 [root@localhost tmp]# journalctl --unit nginx -- Logs begin at Sun 2015-04-05 10:36:30 BST, end at Sun 2015-05-31 11:12:57 BST. -- May 31 10:20:41 localhost.localdomain systemd[1]: Starting nginx - high performance web server... May 31 10:20:41 localhost.localdomain nginx[111169]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok May 31 10:20:41 localhost.localdomain nginx[111169]: nginx: configuration file /etc/nginx/nginx.conf test is successful May 31 10:20:41 localhost.localdomain systemd[1]: Failed to read PID from file /run/nginx.pid: Invalid argument May 31 10:20:41 localhost.localdomain systemd[1]: Started nginx - high performance web server. May 31 10:27:05 localhost.localdomain systemd[1]: Stopping nginx - high performance web server... May 31 10:27:05 localhost.localdomain systemd[1]: Stopped nginx - high performance web server. May 31 10:58:36 localhost.localdomain systemd[1]: Stopped nginx - high performance web server. May 31 11:12:29 localhost.localdomain systemd[1]: Starting nginx - high performance web server... May 31 11:12:29 localhost.localdomain nginx[112202]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok May 31 11:12:29 localhost.localdomain nginx[112202]: nginx: configuration file /etc/nginx/nginx.conf test is successful May 31 11:12:29 localhost.localdomain systemd[1]: Failed to read PID from file /run/nginx.pid: Invalid argument May 31 11:12:29 localhost.localdomain systemd[1]: Started nginx - high performance web server. May 31 11:12:57 localhost.localdomain systemd[1]: nginx.service: main process exited, code=killed, status=9/KILL May 31 11:12:57 localhost.localdomain kill[112215]: Usage: May 31 11:12:57 localhost.localdomain kill[112215]: kill [options] <pid|name> [...] May 31 11:12:57 localhost.localdomain kill[112215]: Options: May 31 11:12:57 localhost.localdomain kill[112215]: -a, --all do not restrict the name-to-pid conversion to processes May 31 11:12:57 localhost.localdomain kill[112215]: with the same uid as the present process May 31 11:12:57 localhost.localdomain kill[112215]: -s, --signal <sig> send specified signal May 31 11:12:57 localhost.localdomain kill[112215]: -q, --queue <sig> use sigqueue(2) rather than kill(2) May 31 11:12:57 localhost.localdomain kill[112215]: -p, --pid print pids without signaling them May 31 11:12:57 localhost.localdomain kill[112215]: -l, --list [=<signal>] list signal names, or convert one to a name May 31 11:12:57 localhost.localdomain kill[112215]: -L, --table list signal names and numbers May 31 11:12:57 localhost.localdomain kill[112215]: -h, --help display this help and exit May 31 11:12:57 localhost.localdomain kill[112215]: -V, --version output version information and exit May 31 11:12:57 localhost.localdomain kill[112215]: For more details see kill(1). May 31 11:12:57 localhost.localdomain systemd[1]: nginx.service: control process exited, code=exited status=1 May 31 11:12:57 localhost.localdomain systemd[1]: Unit nginx.service entered failed state. 

观察你所看到的只有php的列是如何包含nginx systemd单元,systemd,nginx,kill在内的所有进程的名字。 这有助于解释。

单位名称由文件名给出。 在Centos 7上我做了:

 (cfs)[root@localhost system]# pwd /usr/lib/systemd/system ^?(cfs)[root@localhost system]# cp nginx.service newnginx.service 

停止原来的nxginx:

 (cfs)[root@localhost system]# service nginx stop Redirecting to /bin/systemctl stop nginx.service (cfs)[root@localhost system]# service h^Cinx stop 

看看并开始“newnginx”:

 (cfs)[root@localhost system]# service newnginx status Redirecting to /bin/systemctl status newnginx.service newnginx.service - nginx - high performance web server Loaded: loaded (/usr/lib/systemd/system/newnginx.service; disabled) Active: inactive (dead) Docs: http://nginx.org/en/docs/ (cfs)[root@localhost system]# service newnginx start Redirecting to /bin/systemctl start newnginx.service 

Journalctl现在列出了newnginx单元:

 (cfs)[root@localhost system]# journalctl --unit newnginx -- Logs begin at Sun 2015-04-05 10:36:30 BST, end at Sun 2015-05-31 10:27:38 BST. -- May 31 10:27:38 localhost.localdomain systemd[1]: Starting nginx - high performance web server... May 31 10:27:38 localhost.localdomain nginx[111311]: nginx: the configuration file /etc/nginx/nginx.conf syntax is o May 31 10:27:38 localhost.localdomain nginx[111311]: nginx: configuration file /etc/nginx/nginx.conf test is success May 31 10:27:38 localhost.localdomain systemd[1]: Failed to read PID from file /run/nginx.pid: Invalid argument May 31 10:27:38 localhost.localdomain systemd[1]: Started nginx - high performance web server. 

现在有两个nginx systemd单元:

 # systemctl list-unit-files --all | grep nginx newnginx.service disabled nginx.service disabled