问题标签 [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.
java - 如何将现有 Java 应用程序转换为 SYS V 服务(守护程序)
我有一个 Java 应用程序,要启动它我使用
java -jar myapp.jar
为了阻止它,我使用 CTRL+C。
现在我需要将该应用程序转换为我可以开始使用的东西:
/etc/init.d/myapp 启动
我可以停止:
/etc/init.d/myapp 停止
问题全在于保存进程的PID,我想我在某个地方看到了这样做的秘诀,我不记得在哪里,我也找不到它。
我看到有一个名为Java Server Wrapper的项目,但我正在寻找不限制内存使用的免费项目。而且我认为这项工作可以在单个 bash 脚本中完成。
python - 在init.d的后台执行python脚本
为了与我的 iPhone 交互,我创建了一个通过套接字发送和接收数据的 python 脚本,该脚本必须在 emule 之后启动才能工作,我想到了这样的事情:
接着
最大的问题是,虽然我指定了 & 签名,但不想在后台运行进程:(有什么想法吗??
谢谢!
python - Python中的System V共享内存?
如何使用来自 Python的shmat()
, shmdt()
, shmctl()
,调用?shmget()
它们是否隐藏在标准库中的某个地方?
更新0
我正在寻找可以在 Ubuntu 存储库或 Python 标准库(现在或将来的版本中)中找到的 System V 绑定。
c - 有没有可能的方法将内存位置更改为 C 中的共享内存?
在c中你可以做
分配第一个给定的空闲内存空间作为共享内存。
有没有办法将当前内存空间分配为共享内存?
message-queue - System V 消息队列 - 定时接收
我正在使用 System V 消息队列,它没有“定时接收”功能,如 POSIX MQ。但现在我需要它(这个定时接收功能)。
有人可能会问:“那你为什么不使用 POSIX 而不是 Sys V?”。因为在我的基准测试中,SysV MQ 比 POSIX MQ 快 +- 20%。
现在的问题。如何为 Sys V MQ 伪造“定时接收”?
我写了一段代码,它在循环中msgrcv
使用. 我认为它很丑,所以我需要想法来写一个漂亮的=]IPC_NOWAIT
usleep
linux - System V IPC msgrcv 带定时器 Howto
我们正在使用 System V 消息队列,该msgrcv
函数在阻塞模式下被调用。我们想在阻塞msgrcv
函数上实现一个定时器,这样当定时器到期而我们还没有收到消息时,我们可以解除阻塞msgrcv
并继续执行。
您对我们如何通过编程实现这一目标有什么建议吗?
posix - System V IPC 与 POSIX IPC
System V IPC
和 和有什么区别POSIX IPC
?- 为什么我们有两个标准?
- 如何决定使用哪些 IPC 功能?
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 代码,其中有人正在使用一组信号量,但我找不到。
如果你能帮助我解决这个问题,我会非常感谢你们。提前感谢一吨。
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,或者没有创建新段,具有给定键的段存在,但大小大于该段的大小。
现在,我的问题是,是否有充分的理由将其设置为零?
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
?