我开发了一个项目/服务这将为我提供 linux m/c 的可安装文件。
服务:如果机器打开,它总是在后台运行。 Linux 后台进程。
我只是想知道该文件的扩展名是什么。就像 Windows 服务有 .exe 扩展名吗?
我们需要 Linux 机器上的管理员权限才能安装该文件吗?
我可能使用下面的命令
[Unit]
Description=Dotnet Core Demo service
[Service]
ExecStart=/bin/dotnet/dotnet Service.Sample.dll
WorkingDirectory=/etc/SampleService/
User=dotnetuser
Group=dotnetuser
Restart=on-failure
SyslogIdentifier=dotnet-sample-service
PrivateTmp=true
[Install]
WantedBy=multi-user.target
答案1
开头的代码[Unit]
是一个systemd服务文件。当您分发软件包时,您需要使用特定于软件包系统的方法,无论是 dpkg、RPM 还是其他东西,将服务文件放入适当的目录(最有可能是 /usr/lib/systemd/system)并获取它根据 [Install] 部分 ( systemctl enable
) 自动启动。请参阅 systemd 和相关软件包系统的文档。
服务文件的扩展名必须是.service
.
答案2
扩展名并不重要。为了使该文件可执行,需要为尝试运行该文件的任何人设置可执行权限位,否则必须将其用作要运行的语言或 shell 的二进制文件的参数。
对于第一个示例,设置了执行权限:
当前目录:
./installed_file
任何其他目录:
/path/to/installed_file
没有设置执行权限:
bash installed_file
python /path/to/installed_file
最后两个使用 Bash 或 Python 执行该文件。
如果您尝试使用 yum、dnf、rpm、apt、dpkg、zypper、pacman 等软件包管理器来安装它,那么您将需要 sudo,或者如您所称的 admin。
如果您打算以其他方式创建它并将其放置在只有 root 具有写入能力的目录中,例如/usr/bin
、/usr/sbin
、/usr/local/bin
、/usr/local/sbin
、/opt/
等,情况也是如此。