在一个Amazon S3 Linux实例中,我有两个名为start_my_app和stop_my_app的脚本,它们永远地启动和停止(反过来运行我的Node.js应用程序)。我使用这些脚本手动启动和停止我的Node.js应用程序。到目前为止一切顺利。

我的问题是:我还想设置它,以便在系统启动时运行start_my_app。我知道我需要在init中添加一个文件。d和我知道如何符号链接到rc内的适当目录。d,但是我不知道我放在init。d中的文件里到底需要什么。我认为它应该只有一行,比如start_my_app,但这对我来说并不管用。


当前回答

这里有一个更简单的方法!

首先:编写一个shell脚本并将其保存为.sh 这里有一个例子

#!/bin/bash
Icoff='/home/akbar/keyboardONOFF/icon/Dt6hQ.png'
id=13
fconfig=".keyboard"
echo "disabled" > $fconfig
xinput float $id
notify-send -i $Icoff "Internal Keyboard disabled";

这个脚本将在启动时禁用内部键盘。

第二步:打开应用程序“启动应用程序首选项”

在这里输入图像描述

在这里输入图像描述

第三:单击“添加”。 第四:在NAME部分给出一个名字。 第五:在命令部分浏览到你的.sh。 第六:编辑你的命令部分:

bash <space> path/to/file/<filename>.sh <space> --start

第七步:点击添加。完成了!

现在重新启动你的电脑来确认。

干杯!

其他回答

一个简单的方法是在/etc/rc.中添加一行的地方:

/PATH/TO/MY_APP &

或者如果你想以特殊用户的身份运行命令:

su - USER_FOOBAR -c /PATH/TO/MY_APP &

(后面的&号作为进程的背景,并允许rc。本地继续执行)

如果你想要一个完整的init脚本,debian发行版有一个模板文件,所以:

cp /etc/init.d/skeleton /etc/init.d/your_app

稍微调整一下。

对某些人来说,这是可行的:

您可以简单地添加以下命令到系统→首选项→启动应用程序:

bash /full/path/to/your/script.sh

这个简单的解决方案在一个运行CentOS的亚马逊Linux实例上对我有效。 编辑/etc/rc.d/rc.本地文件,并把命令放在那里。在这个文件中提到,它将在所有其他init脚本之后执行。所以在这方面要小心。这是如何文件寻找我目前..最后一行是我的脚本名称。

如果你想运行一个简单的脚本(或任何东西),绝对最简单的方法是如果你有一个gui来使用系统>首选项,然后启动应用程序。

只要浏览到你想要的脚本,就可以了。(使脚本可执行)

使用Python 3微服务或shell;使用Ubuntu Server 18.04 (Bionic Beaver)或Ubuntu 19.10 (Eoan Ermine)或Ubuntu 18.10 (Cosmic Cuttlefish)我总是喜欢这些步骤,而且它也总是有效:

Creating a microservice called p example "brain_microservice1.service" in my case: $ nano /lib/systemd/system/brain_microservice1.service Inside this new service that you are in: [Unit] Description=brain_microservice_1 After=multi-user.target [Service] Type=simple ExecStart=/usr/bin/python3.7 /root/scriptsPython/RUN_SERVICES/microservices /microservice_1.py -k start -DFOREGROUND ExecStop=/usr/bin/python3.7 /root/scriptsPython/RUN_SERVICES/microservices/microservice_1.py -k graceful-stop ExecReload=/usr/bin/python3.7 /root/scriptsPython/RUN_SERVICES/microservices/microservice_1.py -k graceful PrivateTmp=true LimitNOFILE=infinity KillMode=mixed Restart=on-failure RestartSec=5s [Install] WantedBy=multi-user.target Give the permissions: $ chmod -X /lib/systemd/system/brain_microservice* $ chmod -R 775 /lib/systemd/system/brain_microservice* Give the execution permission then: $ systemctl daemon-reload Enable then, this will make then always start on startup $ systemctl enable brain_microservice1.service Then you can test it; $ sudo reboot now Finish = SUCCESS!!

这可以用相同的主体脚本来运行shell, react…数据库启动脚本…任何类型的OS代码…希望这能帮助你…

...