群晖 NAS 可执行程序 的开机自启动

12 min read

将可执行程序复制到Synology NAS上。你可以通过SSH连接到你的NAS,并将可执行程序复制到合适的目录下。例如,你可以将可执行程序复制到/usr/local/bin目录下。

使用SSH连接到你的NAS,并登录为root用户。

创建一个名为startup.sh的脚本文件。你可以使用vi或nano等文本编辑器创建该文件。例如,在终端中输入以下命令以创建startup.sh文件:

vi /usr/local/etc/rc.d/startup.sh

在startup.sh文件中添加以下内容,这将启动你的可执行程序:

#!/bin/sh
/usr/local/bin/your_executable_program

其中,your_executable_program是你要运行的可执行程序的名称。

授予startup.sh文件执行权限。在终端中输入以下命令:

chmod +x /usr/local/etc/rc.d/startup.sh

重启NAS以验证启动脚本是否正常工作。在终端中输入以下命令:

syno_poweroff_task -r

等待NAS重新启动后,你的可执行程序将自动启动。

如果你想停止该程序,可以通过SSH连接到你的NAS,并运行以下命令:

/usr/local/etc/rc.d/startup.sh stop

如果要卸载该程序,请删除startup.sh文件,并在终端中输入以下命令以删除相关的启动任务:

/usr/syno/bin/synonotify PKGHasStopped pkgname=your_package_name

其中,your_package_name是你的程序名称。

&符号和nohup命令

&符号和nohup命令都可以将一个命令或程序放到后台运行,但它们之间有一些区别

&符号是一种在命令行中使用的特殊字符,它表示将命令放到后台运行。例如:

command &

这将使command命令在后台运行,并立即释放终端会话,让你可以继续输入其他命令。但是,如果你关闭了终端会话,这个后台进程也将被关闭。

nohup命令是一个可执行程序,可以将一个命令或程序放到后台运行,并忽略挂起信号(SIGHUP)。这意味着,即使你关闭了终端会话,这个后台进程也不会被关闭。例如:

nohup command &

这将使用nohup命令将command命令放到后台运行,并忽略挂起信号。如果你关闭了终端会话,这个后台进程仍然会继续运行。

因此,&符号适用于临时需要将命令或程序放到后台运行的场景,而nohup命令适用于长时间运行的进程,可以确保即使关闭终端会话也不会影响其运行。

/dev/null 2>&1 &

nohup /test > /dev/null 2>&1 &

"> /dev/null":将标准输出重定向到/dev/null文件中。/dev/null是一个特殊的设备文件,它将一切写入它的输入都丢弃掉,因此程序的标准输出将被丢弃。

"2>&1":将标准错误输出(文件描述符2)重定向到标准输出(文件描述符1)的位置。这样,程序的标准错误输出也将被重定向到/dev/null文件中,被丢弃。