草庐IT

init_env

全部标签

linux - 添加 init.d 服务(shell 中的 chkconfig/autocomplete)

我制作了一个启动脚本(即myserviced)并将其放入/etc/init.d/我跑了chkconfig--addmyserviced我可以启动/停止/重新启动服务,只需使用:servicemyservicedstart等但是,我注意到当我键入“服务”然后执行TAB(以获取可能的完成列表)时,我没有在可能的完成列表中看到myserviced(它列出了所有其他服务)。如何将myserviced添加到自动完成列表?这是在RHEL上的zsh中。谢谢 最佳答案 您可以使用以下命令将/etc/init.d/中列出的所有脚本添加到服务命令中:c

linux - 简单替换 init 以启动控制台

在一台非常简单的PC上,我想用最简单的bash脚本替换Ubuntu12.04/sbin/init,以便运行的进程数量最少。显然,没有X,没有USB,没有检测到新硬件,没有升级,没有apt,“什么都没有”,我只需要一个带有基于DHCP的Wi-FiIP地址的工作控制台(ssid,密码已经存储在/etc中/网络/接口(interface))。就这样。目前,我已经尝试用这个替换/sbin/init:#!/bin/shmount-orw,remount/mount-tprocnone/procudevd--daemonmkdir/run/networkifup-a&while[1];do/sbi

linux - 使用 gdb 在 Qemu 上调试 init

我正在尝试在Qemu上模拟caviumocteon的mips64linux内核。我目前在使用模式init代码方面遇到一些问题,想调试init。我在命令行中使用-s-S选项启动Qemu并运行gdb使用命令ddd--debugger/OCTEON-SDK/tools/bin/mips64-octeon-linux-gnu-gdb/OCTEON-SDK/linux/kernel_2.6/linux/vmlinux然后用命令附加gdb目标远程localhost:1234gdb当前仅显示在内核空间中运行的指令。我想问的是,有什么方法可以像在内核空间中一样逐步调试用户模式初始化和库指令?例如,如果

linux - Nginx init.d 脚本

错误:Startingnginx:nginx:[emerg]bind()to0.0.0.0:80failed(98:Addressalreadyinuse)nginx:[emerg]bind()to0.0.0.0:80failed(98:Addressalreadyinuse)nginx:[emerg]bind()to0.0.0.0:80failed(98:Addressalreadyinuse)nginx:[emerg]bind()to0.0.0.0:80failed(98:Addressalreadyinuse)nginx:[emerg]bind()to0.0.0.0:80fail

linux - sudo 用户的 Ansible env 变量不同

我们面临的问题是环境变量。用户A的JAVA_HOME设置为1.5,root用户设置为1.7。当我手动登录并检查A和root中的版本时,它反射(reflect)的是相同的。当我以用户A身份通过ansibleSSH并将sudo设置为true(sudo_user=root)时,我预计java版本为1.7但它返回为1.5,这是用户的版本A.知道为什么手动登录和可靠登录之间的行为不同吗? 最佳答案 根据您的系统配置,当Ansible通过sudo提升其权限时,环境将被“净化”,为您提供最小的环境变量集。您的/etc/sudoers文件可能具有设

java - spring boot init.d 脚本 start-stop-daemon : unrecognized option --no-close

在将我的应用符号链接(symboliclink)到/etc/init.d/myappname之后。/etc/init.d/myappnamestartgives"Failedtostart"/var/log/appname.log告诉"start-stop-daemon:unrecognizedoption'--no-close'"当我删除--no-close时,jar已损坏且无法再运行。我很震惊。bdw我的jar是完全可执行的jar。即,当我单独运行jar时,它会正常启动springboot。这里出了什么问题?编辑:do_start(){working_dir=$(dirname"$

linux - 如何编写 bash shell 脚本以通过 ssh 连接到远程计算机并更改用户并导出 env 变量并执行其他命令

我有一个在多个不同的远程redhat机器上运行的网络服务。每当我想更新服务时,我都会从版本控制库(我使用perforce)同步用perl编写的新Web服务源代码,并使用新同步的perl代码重新启动服务。我觉得一个一个登录到远程机器,然后手动一个一个重启服务的那一系列命令,太无聊了。所以我写了一个像下面这样的bash脚本update.sh以“一次在一个地方做,更新所有机器”。我将在我的本地机器上运行这个shell脚本。不过好像不行。它只执行第一个命令“sudo-uwebservice_username-i”,正如我从本地机器的命令行中看到的那样。(下面的代码仅显示了它将如何更新远程Web

linux - 使用 ELF 文件的 ".init_array"部分

当需要在程序启动时运行一段代码(Linux),如何正确使用可执行文件(ELF32-i386)的.init_section?我有以下代码(GNUAssembler),它有ctor初始化函数,这个函数的地址放在.init_array部分:.intel_syntaxnoprefix.datas1:.asciz"Initcode\n"s2:.asciz"Maincode\n".global_start.globalctor.textctor:moveax,4#sys_write()movebx,1#stdoutmovecx,offsets1movedx,10int0x80ret.section

c - 为什么这个程序在 init/reboot/shutdown 时没有收到 SIGTERM?

我需要拦截重启或关机。程序是这样的:voidsig_handler(intsig){if(sig==SIGTERM){/*dosomething*/}}intmain(){....signal(SIGTERM,sig_handler);/*daemon*/pid=fork();if(pid>0)exit(EXIT_SUCCESS);//Ididn'tdosetsid()toretainprocessgroupid.....}这在我通过“kill-15”进行测试时有效。但是,当我尝试“重启”或“关机”命令时,它从未收到信号。初始化手册页说:"当init被请求更改运行级别时,它会向所有在新

python /usr/bin/env : bad interpreter: Not a directory

我做错了。我安装了Python3,然后我执行了以下命令以使默认版本的Python成为Python3sudoln-fs/opt/Python-3.4.1/python/usr/bin/python但我想回到python2.7而我做到了sudoln-fs/usr/bin/python2.7/python/usr/bin/python现在,当我想运行一个带有python的bash脚本时,出现以下错误:/usr/bin/env:badinterpreter:Notadirectory当我运行这个命令时:ls-l/usr/bin/env我的结果是红色的:lrwxrwxrwx1rootroot25