我的 Ubuntu 上有一个 Cassandra 服务,但我无法确定该服务在哪个用户下运行。我知道如何找到文件和目录的所有者和权限。但是我如何为 Ubuntu 服务做到这一点。假设服务只是一个可执行文件,我如何找到特定服务的位置?
/var/log 文件有什么用?当我尝试在 Ubuntu 16.04 上运行 cassandra 时
OpenJDK 64-Bit Server VM warning: Cannot open file /var/log/cassandra/gc.log due to Permission denied
Run Code Online (Sandbox Code Playgroud)
之后
19:47:58,887 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[SYSTEMLOG] - Active log file name: /var/log/cassandra/system.log
19:47:58,887 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[SYSTEMLOG] - File property is set to [/var/log/cassandra/system.log]
19:47:58,889 |-ERROR in ch.qos.logback.core.rolling.RollingFileAppender[SYSTEMLOG] - openFile(/var/log/cassandra/system.log,true) call failed. java.io.FileNotFoundException: /var/log/cassandra/system.log (Permission denied)
at java.io.FileNotFoundException: /var/log/cassandra/system.log (Permission denied)
Run Code Online (Sandbox Code Playgroud)
为什么我会有这些问题?这是我的java
java -version
openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-8u151-b12-0ubuntu0.16.04.2-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)
Run Code Online (Sandbox Code Playgroud)
这些是权限
/var/log$ …Run Code Online (Sandbox Code Playgroud) 对于服务,虽然存在pid文件,但在尝试启动服务时仍然失败,提示:
$ sudo service cassandra start
* could not access pidfile for Cassandra
Run Code Online (Sandbox Code Playgroud)
我验证了文件夹权限/var/run(其所有者是 root)并且子文件夹 cassandra 归 cassandra 用户所有,但是即使我验证了 pid 文件存在,该服务仍然无法访问 pid 文件。(还分配了pid)。那么为什么它说它无法访问pidfile?
并且cassandra作为独立进程运行可以正常工作,但不仅仅是使用service cassandra start
$ sudo ls -l /var/run/cassandra
total 4
-rw-r--r-- 1 cassandra cassandra 4 Mar 18 07:33 cassandra.pid
$ sudo su
# ls -ld /var/run/cassandra
dr--r----- 2 cassandra cassandra 60 Mar 18 07:38 /var/run/cassandra
Run Code Online (Sandbox Code Playgroud)
我如何使这项工作使用sudo service cassandra start?
I have added
echo "deb http://www.apache.org/dist/cassandra/debian 311x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list
Run Code Online (Sandbox Code Playgroud)
Now I want to remove it and install Cassandra in another way.How to delete it?