Anwendung unter Ubuntu systemweit ausführen lassen
Hallo zusammen!
Da ich weder im Ubuntu-Forum, noch im Herstellerforum von Synology eine Antwort bekomme: Vielleicht ist einer von euch in der Lage mir bei meinem Problem unter die Arme zu greifen!?
Ich habe zwei Rechner mit Ubuntu 16.04.2 LTS, 64-bit als Multiuserumgebung am Start. Bei beiden Rechnern synchronisiere ich einen Ordner im Wurzelverzeichnis über Synology Cloud Station Drive in der Version 4.2.5, Build 4396. Folgender Aufbau des Systems:
Das Paket Cloud Station Drive wurde logischer Weise vom Admin installiert, der Ordner /daten mit den entsprechenden Rechten für die User versorgt.
Bei der Installation wird im /home-Verzeichnis des Admins ein Ordner /.CloudStation angelegt. In diesem Ordner befinden sich sämtliche Konfigurationen und auch die Protokolldateien.
Das eigentliche Problem: Die Synchronisation des Ordners /daten findet nur statt, wenn der User angemeldet ist unter dem das Paket Cloud Station Drive eingerichtet wurde. Wenn sich ein anderer User anmeldet, dann müsste dieser den Service erst wieder neu einrichten. Der erste Gedanke von mir war, die Konfigurationsdateien in den Ordner /etc/skel mit einzubinden. So würde jeder neu angelegte User automatisch die Konfiguration ins Profil gelegt bekommen. Das funktioniert aber nicht, da sonst zum Einen jeder User einen anderen Stand der Logdateien hat und zum Anderen jeder User aufgrund der Datenbankeinträge in den Konfigdateien sich seine eigene Datenbankversion schaffen würde...
Daraus resultiert die konkrete Frage:
Wenn ich den Ordner /.CloudStation global zugängig machen würde, bzw. aus dem /home des Admins heraus nehme damit jeder User eine einheitliche Datenbankversion präsentiert bekommt, wie bekomme ich die Anwendung Cloud Station Drive systemweit gestartet, egal welcher User sich anmeldet, besser noch, bevor sich ein User anmeldet?
Würde das mit dieser Anwendung überhaupt funktionieren da es sich ja um eine Datenbank (sqlite) handelt?
Ich hab hier einfach mal den Inhalt der config hinterlassen, vielleicht hilft das ja weiter
Grüße
Stefan
Da ich weder im Ubuntu-Forum, noch im Herstellerforum von Synology eine Antwort bekomme: Vielleicht ist einer von euch in der Lage mir bei meinem Problem unter die Arme zu greifen!?
Ich habe zwei Rechner mit Ubuntu 16.04.2 LTS, 64-bit als Multiuserumgebung am Start. Bei beiden Rechnern synchronisiere ich einen Ordner im Wurzelverzeichnis über Synology Cloud Station Drive in der Version 4.2.5, Build 4396. Folgender Aufbau des Systems:
- Client 1: Benutzer Admin und die User 1-5, ein Ordner "/daten" <-> Synchronisation zur Synology DS via Cloud Station Drive.
- Client 2: Benutzer Admin und die User 1-14, ein Ordner "daten" <-> Synchronisation zur Synology DS via Cloud Station Drive.
Das Paket Cloud Station Drive wurde logischer Weise vom Admin installiert, der Ordner /daten mit den entsprechenden Rechten für die User versorgt.
Bei der Installation wird im /home-Verzeichnis des Admins ein Ordner /.CloudStation angelegt. In diesem Ordner befinden sich sämtliche Konfigurationen und auch die Protokolldateien.
Das eigentliche Problem: Die Synchronisation des Ordners /daten findet nur statt, wenn der User angemeldet ist unter dem das Paket Cloud Station Drive eingerichtet wurde. Wenn sich ein anderer User anmeldet, dann müsste dieser den Service erst wieder neu einrichten. Der erste Gedanke von mir war, die Konfigurationsdateien in den Ordner /etc/skel mit einzubinden. So würde jeder neu angelegte User automatisch die Konfiguration ins Profil gelegt bekommen. Das funktioniert aber nicht, da sonst zum Einen jeder User einen anderen Stand der Logdateien hat und zum Anderen jeder User aufgrund der Datenbankeinträge in den Konfigdateien sich seine eigene Datenbankversion schaffen würde...
Daraus resultiert die konkrete Frage:
Wenn ich den Ordner /.CloudStation global zugängig machen würde, bzw. aus dem /home des Admins heraus nehme damit jeder User eine einheitliche Datenbankversion präsentiert bekommt, wie bekomme ich die Anwendung Cloud Station Drive systemweit gestartet, egal welcher User sich anmeldet, besser noch, bevor sich ein User anmeldet?
Würde das mit dieser Anwendung überhaupt funktionieren da es sich ja um eine Datenbank (sqlite) handelt?
Ich hab hier einfach mal den Inhalt der config hinterlassen, vielleicht hilft das ja weiter
cert_path="/home/stefan/.CloudStation/data/certs.pem"
config_path="/home/stefan/.CloudStation/data/config/client.conf"
db_path="/home/stefan/.CloudStation/data/db"
filter_db_path="/home/stefan/.CloudStation/data/db/filter.sqlite"
fstat_db_path="/home/stefan/.CloudStation/data/db/file-status.sqlite"
log_file_path="/home/stefan/.CloudStation/log/daemon.log"
log_level_file_path="/home/stefan/.CloudStation/CloudStation.app/log_template/syncfolder_c.debug"
log_path="/home/stefan/.CloudStation/log"
pid_file_path="/home/stefan/.CloudStation/daemon.pid"
punchd_port="1025"
support_snapshot="false"
system_filter_path="/home/stefan/.CloudStation/CloudStation.app/conf/filter"
ui_port="1024"
Grüße
Stefan
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 364132
Url: https://administrator.de/forum/anwendung-unter-ubuntu-systemweit-ausfuehren-lassen-364132.html
Ausgedruckt am: 27.12.2024 um 09:12 Uhr
3 Kommentare
Neuester Kommentar
Moin,
einfach ein service file schreben, was die Software (die hoffentlich einen headless mode hat), als systemd service aufrufen.
Dazu kannst du den passenden "User" parameter aufrufen. Wenn du noch einen system.timer hinzufügst, kannst du die Software auf regemäßig neu aufrufen lassen.
Schau am besten mal, ob die Software das nicht vielleicht sogar selbstständig tut.
Gruß
Chris
einfach ein service file schreben, was die Software (die hoffentlich einen headless mode hat), als systemd service aufrufen.
Dazu kannst du den passenden "User" parameter aufrufen. Wenn du noch einen system.timer hinzufügst, kannst du die Software auf regemäßig neu aufrufen lassen.
Schau am besten mal, ob die Software das nicht vielleicht sogar selbstständig tut.
Gruß
Chris
Moin,
Naja, probiere es doch einfach mal aus:
erzeuge ein Service file in `/etc/systemd/system/` mit dem Namen "CloudStation.service"
Folgender Inhalt:
Sobald das gespeichert ist, einmal `systemctl daemon-reload` eingeben und dann mal mit `systemctl start CloudStation.service` schauen was passiert.
Im besten Fall geht's, das kannst du mit `systemctl status CloudStation.service` überprüfen.
Wenn nicht, probiere die Anwendung erstmal über die Konsole zu starten. und zwar so, dass sie sich nicht wegforkt., Falls sie das tut, füge mal `Type=forking` ein und definiere die Location vom PID-File.
Gruß
Chris
PS: Ich würde übrigens mal drüber nachdenken, ob es nicht einfacherer ist, einfach einen rsync job einzurichten ;)
Naja, probiere es doch einfach mal aus:
erzeuge ein Service file in `/etc/systemd/system/` mit dem Namen "CloudStation.service"
Folgender Inhalt:
[Unit]
Description=Run CloudStation
After=network.target
[Service]
WorkingDirectory=/home/YOURUSER/
User=YOURUSER
ExecStart=/path/to/program --parameter 1
Sobald das gespeichert ist, einmal `systemctl daemon-reload` eingeben und dann mal mit `systemctl start CloudStation.service` schauen was passiert.
Im besten Fall geht's, das kannst du mit `systemctl status CloudStation.service` überprüfen.
Wenn nicht, probiere die Anwendung erstmal über die Konsole zu starten. und zwar so, dass sie sich nicht wegforkt., Falls sie das tut, füge mal `Type=forking` ein und definiere die Location vom PID-File.
Gruß
Chris
PS: Ich würde übrigens mal drüber nachdenken, ob es nicht einfacherer ist, einfach einen rsync job einzurichten ;)