我在Ubuntu上运行Rails,使用的是Nginx web服务器和5个瘦应用服务器。
每天一次,系统变得非常慢,有时会挂断。
我不确定是否是瘦服务器,但当我在挂起时停止服务器时,我会得到:
Can't stop process, no PID found in tmp/pids/thin.3000.pid
以下是显示精简启动和停止的日志:
bitnami@linux:/opt/bitnami$ thin -C projects/myapp/current/config/thin.yml start
Starting server on 127.0.0.1:3000 ...
Start
我正在运行一个阿尔卑斯linux,并试图安装radare2。我下载了git,然后运行了install.sh脚本。在遇到错误之前,它似乎运行良好:
In file included from p/native/linux/linux_debug.c:6:
/home/nomad/GitRepos/radare2/libr/include/r_debug.h:609:115: note: expected 'r_ptrace_data_t' {aka 'int'} but argument is of type 'void *'
static in
对于给定的进程ID,确定环境变量(例如PATH)的最佳/最直接方法是什么?必须能够查询任意环境变量。PATH只是第一个例子。
'lsof -a -p $PID -d cwd -F' gets some of it.
但是,我没有看到使用lsof获取给定PID的路径的方法。
'ps -Ep $PID' gets some of it.
但是,再说一次,“不全面”。它似乎只给出了这个过程的一部分“环境”。
在许多其他Linux/UNIX变体上,您可以查看'/proc//environ‘。但是,OS显然没有使用这种机制。
根据proc(5)的linux手册页:
/proc/pid/statm提供有关内存使用情况的信息(以页为单位)。列是:(1)总程序大小(与/proc/pid/status中的VmRSS相同)驻留(2)驻留集大小(与/proc/pid/status中的VmRSS相同)共享(3)共享页(即,由文件支持)文本(4)文本(代码) lib (5)库( Linux 2.6中未使用)数据(6)数据+堆栈dt (7)脏页( Linux 2.6中未使用)
如果我将结果与ubuntu系统监视器进行比较,结果似乎是Mb,但我不是100%确定。“以页为单位”是什么意思?
我在linux-mint $ make上运行c++程序时遇到了htis错误。
g++ -c -O3 common.cc
common.cc: In function ‘float getCurrentMemoryUsage()’:
common.cc:11:40: error: ‘getpid’ was not declared in this scope
string pid = intToStr(unsigned(getpid()));
解决这个问题的步骤是什么,谢谢。
在Unix环境中检测过时pid文件的标准、跨平台方法是什么?假设我想要终止应用程序的一个旧实例,但如果应用程序已经退出,我肯定不想中断具有相同PID的无关进程。
现在我找到了一种在我的Ubuntu (因此可能是其他基于GNU/Linux的系统)上做这件事的方法--伪代码如下:
if ( mtime(pid_file) < mtime( "/proc/"+pid ) ) {
/* process started AFTER the file creation */
/* so it's not what we're looking for
这里有什么问题吗?我有以下简单的课程:
#include "libmnl/libmnl.h"
int main() {
struct mnl_socket *a = mnl_socket_open(12);
}
在运行简单的gcc编译(gcc -lmnl main.c)之后,我得到以下错误:
/tmp/cch3GjuS.o: In function `main':
main.c:(.text+0xe): undefined reference to `mnl_socket_open'
collect2: ld returned 1 exit stat
在Linux上,是否有一种方法可以在进程进入TIME_WAIT状态之前确定它使用的是什么端口。
当我使用netstat -tnp时,我只看到两个端点,但没有进程信息。
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:38805 127.0.0.1:111 TIME_WAIT -
我在16.04Linux box上为PostgreSQL (v9.6)安装了timescaledb扩展(v.5.0),观察到Postgres进程占用了100%cpu:
下面是top命令的结果:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
19885 postgres 20 0 192684 3916 1420 S 98.3 0.1 5689:04 x3606027128
我运行query SEL