当我尝试迁移数据库时,我得到了这个错误:
rake aborted!
could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
我尝试创建一个指向.s.PGSQL.5432的符号链接,但它不起作用。此文件位于/tmp/.s.PGSQL.5432中
有谁有解决方案吗?
操作系统- Linux Mint
我正在使用C中的UNIX套接字来开发服务器。从手册中:
在Linux实现中,文件系统中可见的套接字遵守它们所在目录的每个任务。可以更改它们的所有者、组和权限。如果进程没有创建套接字所在目录的“写入和搜索(执行)”权限,则新套接字的创建将失败。连接到套接字对象需要读写权限。此行为与许多BSD派生系统不同,后者忽略UNIX域套接字的权限。为了安全起见,可移植程序不应依赖此特性。
我有一条世界可写的路。
$ ls -ld api
drwxrwxrwx 2 root www-data 4096 Feb 15 21:57 api
根下的进程在此路径中创建套接字:
$ l
我正在尝试理解套接字,我看到这个基本的类初始化是这样的
LocalServerSocket ls = new LocalServerSocket("mycomputer");
“我的电脑”代表什么?
我读到了Android api for Localserversocket,它说它是一个AF_LOCAL linux命名空间,对我来说,它就像是一个目录的名称。我想知道的是如何从windows计算机与linux命名空间通信以初始化LocalServerSocket,以及如何在linux机器上创建AF_Local命名空间?
如果我通过调用以下命令打开和关闭套接字
Socket s = new Socket( ... );
s.setReuseAddress(true);
in = s.getInputStream();
...
in.close();
s.close();
Linux声明此套接字仍处于打开状态,或者至少存在连接的文件描述符。当通过lsof查询该进程的打开文件时,有一个关闭连接的条目:
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
java 9268 user 5u sock 0,4