标签: startup-scripts

启动时在 /var/run 下创建一个目录

我有一个守护进程,/var/run它的 PID 文件需要自己的目录,并授予守护进程的用户写权限。

我发现我可以使用以下命令创建这个目录:

# mkdir /var/run/mydaemon

然后我可以将其所有权更改为我希望在其下运行该进程的用户/组:

# chown myuser:myuser /var/run/mydaemon

但是每当我重新启动时,这个目录就会消失!每次机器启动时如何创建这个目录?

linux daemon startup-scripts systemd centos7

57
推荐指数
2
解决办法
4万
查看次数

从 rc.local 作为用户而不是 root 执行脚本

我想在每次服务器启动时执行一个脚本。问题是我需要成为某个用户才能执行脚本,如果我尝试以 root 身份执行它,它找不到某些包(例如 ruby​​)。

我尝试更改为 xxx user01。

sudo su user01
/etc/init.d/script start
Run Code Online (Sandbox Code Playgroud)

然而这行不通。

ubuntu startup-scripts rc.local

30
推荐指数
3
解决办法
8万
查看次数

尝试在 Debian 中执行启动脚本时没有此类文件或目录错误

Debian(Raspbian)的新手,我在这个问题上挣扎了几天。我有一个要在启动时执行的启动脚本。

我执行了以下命令,以使脚本可执行并将其与默认参数一起添加到启动序列中。

sudo chmod 755 /etc/init.d/testsam
sudo update-rc.d testsam defaults
Run Code Online (Sandbox Code Playgroud)

尝试测试脚本时,我执行以下操作:

sudo /etc/init.d/testsam start
Run Code Online (Sandbox Code Playgroud)

但是这样做时,我收到一个错误:无法执行 /etc/init.d/testsam: No such file or directory。

我将脚本最小化为非常基本的,但仍然不知道实际原因。我希望有人能指出我正确的解决方案?这是当前的脚本。

#! /bin/bash

# /etc/init.d/testsam

case "$1" in
 start)
        #echo "starting script"
        ;;
 stop)
        #echo "stopping script"
        ;;
 *)
        #echo "Usage: /etc/init.d/testsam {start|stop}"
        exit 1
         ;;
esac

exit 0
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助

debian bash startup-scripts

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

当我通过传递自定义参数 ssh 登录到我的 Unix 机器时,如何设置环境变量?

我想传递一些参数作为我的 ssh 连接的一部分,我可以使用这些参数为我的登录设置自定义变量以执行某些操作或运行某些脚本。你如何在 Windows 机器上运行 Putty,通过 SSH 连接到 CentOS 机器?

ssh putty startup-scripts

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

在 ubuntu 上重启后 postgres 没有启动

我不熟悉 ubuntu (raring),所以有人可以帮助我吗:

我正在使用 apt 的 postgresql 9.1。它在/etc/init.d/postgresql. 我可以使用脚本手动启动服务器。但是,postgres 不会在启动时启动。我发出了一个update-rc.d postgresql defaultsupdate-rc.d postgresql enable(作为root),但这没有帮助。

是否有特定的引导日志,因为我在 syslog 中找不到任何内容?谢谢你们

EDIT2:好的,问题似乎是 sysvinit 与 upstart 的问题。如果我删除符号链接/etc/rcX

sudo update-rc.d -f remove postgresql
Run Code Online (Sandbox Code Playgroud)

并添加一个upstart 脚本来启动 postgresql,它按预期在启动时启动。由于 postgresql 来自官方 apt 存储库,我想知道为什么它不能开箱即用?

postgresql ubuntu startup-scripts

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

未运行 GPO 启动脚本

我无法获得 GPO 在启动时运行脚本。该脚本在一组 Windows 8 机器中的每台机器上创建一个共享文件夹。脚本本身运行良好,但将其附加到 GPO 给我带来了问题。即使在 gpupdate /force 命令和几次重新启动之后,我也无法运行脚本。

这是我所知道的:

  • RSOP 显示正在应用带有脚本的 GPO
  • GPResult 指出脚本尚未运行(多次重启后)
  • 计算机的应用程序或系统事件日志中没有相关事件
  • 单独执行脚本效果很好
  • 使用 psexec 使用 SYSTEM 凭据运行脚本也可以
  • 将脚本从网络共享移动到本地文件夹(例如 C:\GPOFiles\)没有任何区别,GPO 仍然没有执行脚本。
  • 我已经尝试使用其他更简单的脚本只是为了查看相关脚本是否有问题,并且它们也不会运行
  • 我可以将它作为登录脚本运行,但如果可能的话,我宁愿将其应用于机器,而不是用户

我不知道如何解决这个问题,有什么想法吗?

注意,我对组策略有点陌生,所以我可能错过了一些明显的东西。

编辑:

我还尝试从 Windows 7 框和 Windows 8 框创建 GPO,结果相同。域控制器是 windows server 2008。

这是我试图运行的脚本。:

    '========================================================================== 
'ShareSetup.vbs 
'========================================================================== 
Option Explicit  
Const FILE_SHARE = 0 
Const MAXIMUM_CONNECTIONS = 25 
Dim strComputer 
Dim objWMIService 
Dim objNewShare 

strComputer = "." 
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
Set objNewShare = objWMIService.Get("Win32_Share") …
Run Code Online (Sandbox Code Playgroud)

group-policy startup-scripts

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

在 Ubuntu Maverick 中启动系统时让 Xvfb 启动

当系统在 Ubuntu 10.10 (Maverick) 上启动时,我试图让 Xvfb 运行,但它不起作用。在 /etc/rc.local 中,我有以下内容:

/root/start_xvfb.sh >> /var/log/start_xvfb.log 2>&1
exit 0
Run Code Online (Sandbox Code Playgroud)

在 /root/start_xvfb.sh 我有:

#!/bin/sh -e
startx -- `which Xvfb` :0 -screen 0 1024x768x24 &
exit 0
Run Code Online (Sandbox Code Playgroud)

重新启动机器后,日志文件 (/var/log/start_xvfb.log) 包含:

[dix] Could not init font path element /usr/share/fonts/X11/cyrillic, removing from list!
^M
waiting for X server to shut down
^M
Run Code Online (Sandbox Code Playgroud)

鉴于日志文件中的内容,似乎正在调用“startx -- `which Xvfb` :0 -screen 0 1024x768x24”,但此后不久该进程就被终止了。

我想在启动时启动 Xvfb,因为我需要在没有监视器显示的远程服务器上运行 Firefox。如果我在通过 SSH 连接到远程机器后运行 /etc/rc.local,Xvfb 启动没有问题,我可以通过“firefox --display=:0 &”启动 Firefox。如果我在没有先启动 Xvfb 的情况下尝试使用该命令运行 Firefox,我会收到消息“错误:无法打开显示::0”。

请注意,我并不是要实际查看本地工作站上的显示。我希望应用程序显示在远程机器的(虚拟的,内存中的)显示器上。

任何想法为什么 X 服务器在启动后立即在远程机器上关闭?有没有更好的方法让 Xvfb …

x11 startup-scripts rc.local ubuntu-10.10

5
推荐指数
2
解决办法
8576
查看次数

标记/识别进程以稍后杀死它们的最佳方法?

在我的 linux 启动脚本中,当我启动一个进程时(本示例使用 openvpn,但问题对任何进程都是通用的);

openvpn --config /etc/myserver.conf
Run Code Online (Sandbox Code Playgroud)

找到它并100%确定它是正确的过程并在停止部分杀死它的最佳方法是什么?我通常使用类似的东西:

pid=$(ps -efww | grep -v grep | grep openvpn | grep /etc/myserver.conf | awk '{print $2}')
Run Code Online (Sandbox Code Playgroud)

当然它几乎一直都在工作,但有时会出现意外匹配名称几乎相同的进程(例如 myserver.conf-new)的问题,所以我正在寻找更好的方法。

  • 某些进程有办法将 pid 存储在某处,这很好,但通常我对仅基于某个文件中的 pid 杀死进程持怀疑态度。
  • Solaris 有项目,在我有限的经验中并不是所有的玫瑰,因为您必须先设置 /etc/projects,但它确实可以轻松标记并稍后查找进程。
  • 也许使用环境,比如设置一个像 (MYID=myserver) 这样的环境变量,然后用ps e -ef | grep MYID=myserver? 仍然可能会遇到意外匹配的相同问题。

我希望有一些简单的东西,比如:

launch --tag myserver openvpn --config /etc/myserver.conf
Run Code Online (Sandbox Code Playgroud)

pgrep --tag myserver
Run Code Online (Sandbox Code Playgroud)

linux startup-scripts

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

Windows 2008 启动脚本不会运行?

我试图在我的 Windows 2008 Server (R2) 系统启动时运行一个非常简单的批处理脚本。我已通过运行将脚本添加到本地组策略中的“启动脚本”中gpedit.msc,我在Windows Settings/Scripts (Startup/Shutdown)/Startup运行时看到下面列出的脚本rsop.msc,但该脚本没有被执行。rsop即使在重新启动后,“Last Executed”列也是空的,并且永远不会创建应该由脚本创建的文件。

目前,脚本的全部内容是:

rem Check if this script is running.
date /t > c:\temp\flag
Run Code Online (Sandbox Code Playgroud)

目标目录 ( c:\temp) 存在。该脚本名为c:\scripts\startup.bat,如果我手动运行它,它可以正常工作。

windows-server-2008 group-policy startup-scripts

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

运行级脚本的执行顺序

我在 /etc/rc0.d 中的运行级别 0 脚本,应该在停止时执行,例如

  1. K05foo -> ...
  2. K10bar -> ...
  3. K80baz -> ...
  4. S10somemore -> ...
  5. S90halt -> ...

是否正确,执行顺序如上所列,即

  1. 首先是所有杀戮,按优先级升序排列
  2. 然后所有开始,按优先级升序
  3. 所有这些,独立于我们切换到的运行级别 (S,0-6)
  4. 所有脚本总是被调用(即,没有额外的检查会阻止脚本被调用,例如,该脚本是否在前一个运行级别实际上已启动)

我很困惑,因为在我的嵌入式系统上,一些脚本似乎没有被执行,并且那个页面

S20链接在S91之前启动,K91在K20之前终止。

这与我上面的文字相矛盾。

linux startup-scripts runlevel

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