问题标签 [sysv]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
6111 浏览

java - 如何将现有 Java 应用程序转换为 SYS V 服务(守护程序)

我有一个 Java 应用程序,要启动它我使用

java -jar myapp.jar

为了阻止它,我使用 CTRL+C。

现在我需要将该应用程序转换为我可以开始使用的东西:

/etc/init.d/myapp 启动

我可以停止:

/etc/init.d/myapp 停止

问题全在于保存进程的PID,我想我在某个地方看到了这样做的秘诀,我不记得在哪里,我也找不到它。

我看到有一个名为Java Server Wrapper的项目,但我正在寻找不限制内存使用的免费项目。而且我认为这项工作可以在单个 bash 脚本中完成。

0 投票
2 回答
5067 浏览

python - 在init.d的后台执行python脚本

为了与我的 iPhone 交互,我创建了一个通过套接字发送和接收数据的 python 脚本,该脚本必须在 emule 之后启动才能工作,我想到了这样的事情:

接着

最大的问题是,虽然我指定了 & 签名,但不想在后台运行进程:(有什么想法吗??

谢谢!

0 投票
4 回答
12526 浏览

python - Python中的System V共享内存?

如何使用来自 Python的shmat(), shmdt(), shmctl(),调用?shmget()它们是否隐藏在标准库中的某个地方?

更新0

我正在寻找可以在 Ubuntu 存储库或 Python 标准库(现在或将来的版本中)中找到的 System V 绑定。

0 投票
2 回答
204 浏览

c - 有没有可能的方法将内存位置更改为 C 中的共享内存?

在c中你可以做

分配第一个给定的空闲内存空间作为共享内存。

有没有办法将当前内存空间分配为共享内存?

0 投票
2 回答
907 浏览

message-queue - System V 消息队列 - 定时接收

我正在使用 System V 消息队列,它没有“定时接收”功能,如 POSIX MQ。但现在我需要它(这个定时接收功能)。

有人可能会问:“那你为什么不使用 POSIX 而不是 Sys V?”。因为在我的基准测试中,SysV MQ 比 POSIX MQ 快 +- 20%。

现在的问题。如何为 Sys V MQ 伪造“定时接收”?

我写了一段代码,它在循环中msgrcv使用. 我认为它很丑,所以我需要想法来写一个漂亮的=]IPC_NOWAITusleep

0 投票
2 回答
3553 浏览

linux - System V IPC msgrcv 带定时器 Howto

我们正在使用 System V 消息队列,该msgrcv函数在阻塞模式下被调用。我们想在阻塞msgrcv函数上实现一个定时器,这样当定时器到期而我们还没有收到消息时,我们可以解除阻塞msgrcv并继续执行。

您对我们如何通过编程实现这一目标有什么建议吗?

0 投票
4 回答
54490 浏览

posix - System V IPC 与 POSIX IPC

  1. System V IPC和 和有什么区别POSIX IPC
  2. 为什么我们有两个标准?
  3. 如何决定使用哪些 IPC 功能?
0 投票
3 回答
403 浏览

unix - 我们在哪里真正需要一组 System v Semaphores?

每次我阅读 的描述时semget: The semget() system call returns the semaphore set identifier associated with the argument key.,我都想知道我们在哪里真正需要一组 System V 信号量。

我总是给出nsems参数,1因为大多数时候我需要一个信号量。即使我不需要二进制信号量,我为什么要创建一组 5-6 个信号量(比如说)。

如果一个进程创建了一组与单个键关联的 6 个信号量,而另一个进程尝试在同一个键上执行 semget 只要求 3 个信号量,该怎么办。也不是所有这 6 个信号量 6 个单独的二进制信号量。我口渴了,寻找这个问题的答案 2 个月(当然不是连续的)。

如果这个问题似乎是最愚蠢的问题,我很抱歉,但除非我得到一个真正使用信号量集的例子,否则这个疑问将留在我的脑海中。我试图搜索一个示例 C 代码,其中有人正在使用一组信号量,但我找不到。

如果你能帮助我解决这个问题,我会非常感谢你们。提前感谢一吨。

0 投票
1 回答
1488 浏览

perl - 为什么 IPC::SysV->shmget 以 EINVAL 响应?

我目前正在服务器上运行 perl 5.8.8,并且正在尝试安装 5.14。

我将其配置为 usethreads 和 use64bitint 以及它建议的默认值。

make 运行没有问题,但 make test 失败,on

因此:

这两个测试都报告“无效参数”,但是当我查看源代码时,我看不到任何看起来无效的东西。我真的不确定如何进行......任何指针?

更新

我跑了

在两台服务器上:一台有这些问题,另一台没有。

有很多输出,但有趣的是:

好的:

坏的:

所以,似乎两台服务器上都发生了同样的事情,只是在一台服务器上,我看到 shmget(IPC_PRIVATE, 8, 0700) = 7438344

另一个,我明白了

IPC::SysV 的版本在两台服务器上都是相同的......但在我看来这无关紧要,问题在于进行系统调用的代码......对吗?

接下来是什么?

** 更新 2 **

经过一番谷歌搜索后,我运行了以下命令:

好的:

坏的:

所以,这解释了 EINVAL,因为(来自手册页

EINVAL

将创建一个新段,并且大小 < SHMMIN 或大小 > SHMMAX,或者没有创建新段,具有给定键的段存在,但大小大于该段的大小。

现在,我的问题是,是否有充分的理由将其设置为零?

0 投票
1 回答
853 浏览

ruby-on-rails - Ruby后台进程STDOUT为空

我在使用 shell 的“守护进程”功能运行 Sinatra 脚本的启动脚本中遇到了一个奇怪的问题。问题是当我在命令行运行命令时,我得到输出到 STDOUT。如果我在命令行中完全按照脚本中的方式运行命令 - 减去守护程序部分 - 输出将正确重定向到输出文件。但是,当启动脚本运行它时(见下文),我将内容添加到 STDERR 日志而不是 STDOUT 日志。

脚本的相关行:

现在,时髦的部分:

  • 错误日志通过 STDERR 的重定向正确写入。
  • 如果我将 >> 和 2>> 的顺序颠倒过来(我在抓稻草,在这里!),行为不会改变:我仍然得到正确记录 STDERR 并且 STDOUT 为空。
  • 如果输出日志不存在,则 STDOUT 重定向会创建该文件。但是,该文件仍然是 0 长度。
  • 这曾经奏效。日志目录由 log-rotate 维护。所有最近的“输出”日志都是 0 长度。年纪大的不是。它似乎在四月的某个时候停止工作。ruby 代码在那时附近的任何时候都没有改变。启动脚本也没有。

我们以这种方式运行三种不同的服务。其中两个是 ruby​​ 守护进程(一个使用 sinatra,一个不使用),另一个是后台 java 进程。这发生在两个 ruby​​ 进程上,但没有发生在 java 进程上。也许 Ruby 发生了一些变化?

FTR,我们有 ruby​​ 1.8.5 和 RHEL 5.4。


我做了更多的探索。该daemon函数做了很多事情,但问题的实质是它使用runuser. 该命令基本上如下所示:

当我在命令行上完全运行该命令时(无论是否添加了沿行某处添加的单个刻度),我都会在输出日志中得到完全相同的错误行为。所以,在我看来,这是一个红宝石(?)如何与runuser