标签: sysv

System V IPC与POSIX IPC

  1. System V IPC和之间有什么区别POSIX IPC
  2. 为什么我们有两个标准?
  3. 如何确定使用哪些IPC功能?

posix ipc sysv

78
推荐指数
3
解决办法
5万
查看次数

如何在ExecStart命令行中使用参数?

我尝试将Debian上使用的SysVintit脚本(以及LinuxMint和Ubuntu&Co.等衍生产品发行版)转换为Fedora或ArchLinux(以及Bridge或Manjaro等衍生发行版)上使用的系统服务,但即使是systemd启动系统比以前更加高效和多功能,我不明白如何制作简单的东西,比如在命令行上使用"可选"参数,如ExecStart =或ExecRestart =!

以下是我对SysVinit所做的事情:

#!/bin/sh
### BEGIN INIT INFO
# Provides:          myprog
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: myprog init script
# Descripton:        this script manages myprog
### END INIT INFO
# exit if myprog isn't installed
[ -x "/opt/mystuff/myrpog" ] || exit 0
case "$1" in
  start)
    cd /opt/mystuff
    ./myprog -r
    echo
    ;;
  stop)
    cd /opt/mystuff
    ./myprog -x
    ;;
  restart)
    cd /opt/mystuff
    ./myprog -x …
Run Code Online (Sandbox Code Playgroud)

sysv systemd

15
推荐指数
2
解决办法
9万
查看次数

System V在Python中共享内存?

我怎样才能使用的shmat(),shmdt(),shmctl(),shmget()从Python的电话?它们隐藏在标准库的某个地方吗?

Update0

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

python ipc shared-memory sysv

11
推荐指数
2
解决办法
1万
查看次数

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

我有一个Java应用程序,我开始使用它

java -jar myapp.jar

要停止它我使用CTRL + C.

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

/etc/init.d/myapp start

我可以停下来:

/etc/init.d/myapp停止

问题是关于保存过程的PID,我想我在某处看到了这样做的一个方法,我不记得在哪里,我无法找到它.

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

java service daemon sysv

8
推荐指数
2
解决办法
5828
查看次数

单个发送者和多个接收者进程在linux中使用posix消息队列

是否有任何方式使得编写mq_send()器进程在使用消息队列发送消息之后,多个读取器进程可以使用读取消息mq_receive().我希望1写入mq和1读取mq,消息丢失.

所以我只想知道我的理解是否错误.有没有办法使单个编写器和多个读取器进程可以使用posix消息队列进行通信.

linux posix sysv

8
推荐指数
1
解决办法
5087
查看次数

Linux文件命令:SYSV意味着什么?

我正在挖掘两个传统的交叉编译ARM Linux版本.除了"使用此VM映像构建源"之外没有太多文档.文件命令输出之间的唯一区别是存在"(SYSV)"

# file Executable
Executable: ELF 32-bit LSB executable, ARM, version 1 (SYSV) ...
Run Code Online (Sandbox Code Playgroud)

根据字符串中是否存在SYSV,我应该能够假设什么?

linux sysv

7
推荐指数
1
解决办法
5285
查看次数

使用supervisord和rvm来运行rubyonrails

我有一个RubyOnRails 3项目,我正在使用rvm.我想从sysvinit脚本切换到supervisord.sysvinit脚本只能在出现错误的情况下启动软件,它会被$ something杀死并重新启动.主要是我.

在项目文件夹中有一个.ruby-version和一个.ruby-gemset文件,以便自动加载正确的ruby版本和gemset.然后应用程序是一个shell脚本的startet,如下所示:

#!/bin/bash

RAILS_ENV="production" rails server -d
Run Code Online (Sandbox Code Playgroud)

我的init脚本看起来像这样,除了重新启动和停止之外还有效:

#!/bin/sh
### BEGIN INIT INFO
# Provides:          myapp
# Required-Start:    $local_fs $remote_fs $network $syslog
# Required-Stop:     $local_fs $remote_fs $network $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts myapp
# Description:       starts the myapp software
### END INIT INFO

USER=myuser
PATH=$PATH
DAEMON=go.sh
DAEMON_OPTS=""
NAME=myapp
DESC="myapp for $USER"
PID=/home/$USER/myapp/tmp/pids/server.pid

case "$1" in
  start)
        CD_TO_APP_DIR="cd /home/$USER/myapp"
        START_DAEMON_PROCESS="$DAEMON $DAEMON_OPTS"

        echo -n "Starting $DESC: …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails sysv rvm supervisord

6
推荐指数
1
解决办法
1132
查看次数

检查 Numpy 数组是否存储在共享内存中

在 Python 3.8+ 中,是否可以检查 numpy 数组是否存储在共享内存中?

在以下示例中,sharedArr使用对象的缓冲区创建了一个 numpy 数组multiprocessing.shared_memory.SharedMemory。想知道是否可以写一个函数来检测是否SharedMemory被使用。

import numpy as np
from multiprocessing import shared_memory

if __name__ == '__main__':
    # Created numpy array `sharedArr`in shared memory
    arr = np.zeros(5)
    shm = shared_memory.SharedMemory(create=True, size=arr.nbytes)
    sharedArr = np.ndarray(arr.shape, dtype=arr.dtype, buffer=shm.buf)
    sharedArr[:] = arr[:]

    # How to tell if numpy array is stored in shared memory?
    print(type(sharedArr))      # <class 'numpy.ndarray'>
    print(hex(id(sharedArr)))   # 0x7fac99469f30

    shm.close()
    shm.unlink()
Run Code Online (Sandbox Code Playgroud)

python numpy shared-memory sysv python-3.x

6
推荐指数
1
解决办法
974
查看次数

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

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

我将其配置为usethreads和use64bitint,否则为其建议的默认值.

make run没有问题,但是让测试失败了

../cpan/IPC-SysV/t/ipcsysv.t
../cpan/IPC-SysV/t/shm.t
Run Code Online (Sandbox Code Playgroud)

从而:

# ./perl harness ../cpan/IPC-SysV/t/shm.t ../cpan/IPC-SysV/t/ipcsysv.t 
../cpan/IPC-SysV/t/shm.t ...... IPC::SharedMem->new failed: Invalid argument at t/shm.t line 54.
../cpan/IPC-SysV/t/shm.t ...... Dubious, test returned 22 (wstat 5632, 0x1600)
No subtests run
../cpan/IPC-SysV/t/ipcsysv.t .. 1/38 shmget failed: Invalid argument at t/ipcsysv.t line 100.
# Looks like you planned 38 tests but ran 17.
# Looks like your test exited with 22 just after 17.
../cpan/IPC-SysV/t/ipcsysv.t .. Dubious, test returned 22 (wstat 5632, 0x1600)
Failed 21/38 subtests

Test …
Run Code Online (Sandbox Code Playgroud)

perl ipc shared-memory sysv

5
推荐指数
1
解决办法
1377
查看次数

Puppet init脚本不会创建pid文件?

  • CentOS 5.4版(最终版)
  • puppet-server-2.7.19-1.el5 从puppetlabs repo安装.

puppetmaster是成功启动,但它不会创建pid文件.这是[ FAILED ]停止时消息的原因:

/etc/init.d/puppetmaster stop
Stopping puppetmaster:                                     [FAILED]
Run Code Online (Sandbox Code Playgroud)

init脚本:http://fpaste.org/nsfI/

/etc/rc.d/init.d/functions库:http://fpaste.org/ox5Q/

这是我在调试模式下运行时得到的结果:http://fpaste.org/DkoS/

我知道去echo开始后手动PID到一个文件,但为什么不daemon发挥作用的--pidfile工作吗?

daemon $PUPPETMASTER $PUPPETMASTER_OPTS --masterport=${PUPPETMASTER_PORTS[$i]} --pidfile=/var/run/puppet/puppetmaster.${PUPPETMASTER_PORTS[$i]}.pid

当然,Puppet master正在以puppet用户身份运行:

ps -ef | grep [p]uppet
puppet   23418     1  0 18:13 ?        00:00:00 /usr/bin/ruby /usr/sbin/puppetmasterd
Run Code Online (Sandbox Code Playgroud)

/var/run/puppet/文件夹的所有者是puppet:

# ls -ld /var/run/puppet/
drwxr-xr-x 2 puppet puppet 4096 Sep 17 18:46 /var/run/puppet/
Run Code Online (Sandbox Code Playgroud)

bash init.d puppet sysv

5
推荐指数
1
解决办法
4934
查看次数